C#基础学习笔记

一、数据类型、变量与常量

1、程序的基本任务是:对数据进行处理

2、数据分为变量与常量

​ 变量的值可以改变,本质上是内存的空间,用来存储信息

​ 常量的值是固定的,直接写出来的,称字面常量

3、变量声明与赋值

public class Test
{
    public static void Main()
    {
        int x,y=8;//
        double d=3.1415;//
        bool b=true;//
        String s="Hello";//
        Person p=new Person();//声明且赋值
    }
}

​ 变量命名(标识符)要遵守如下的规则:

​ (1)不能是C#关键字

​ (2)由字母、数字、下划线构成(不建议使用下划线,最好使用大小写区分)

​ (3)第一个字符必须是字母或下划线

​ (4)不要太长,一般不超过31个字符为宜

​ (5)变量名最好不要与库函数名、类名相同

​ (6)C#是大小写敏感的

4、数据类型的概念

int age=5;
Label1.Left+=5;
Timer1.Enabled=true;
Text1.Text="Hello";
DateTime.Now

数据类型【本质上】:是数据的存储方式及其能参与的运算的抽象

C#基础学习笔记_第1张图片

值类型:int,double,Point,Size,DateTime

引用类型:Button,Label,Book,Person

int a=5;
int b=a;

Person p=new Person();
Person p2=p;

DataTime t=new DateTime(2018,1,1);
DataTime t12=t;

都属于类型:

int a=5;
DateTime t=new DateTime(2020,12,31);
Button btn=new Button();
double.Perse();

都属于Object:

Lable1.Text=age.ToString();

类型细分:

​ 值类型包括:简单类型、结构类型、枚举类型

​ 引用类型包括:类类型、接口类型、委托类型、数组类型

​ 等价类型:int、double、bool、string

​ 简单类型:

​ 整数类型:

​ 有符号:sbyte、short、int、long

​ 无符号:byte、ushort、uint、ulong

​ 字符类型:char

​ 实数类型:

​ float、double

​ 十进制类型:

​ Decimal

		布尔类型:

​ bool

​ 逻辑类型:bool类型适于逻辑运算,一般用于程序流程控制;bool类型数据只允许取值TRUE或FALSE,不可以0或非0的整数值代替TRUE和FALSE

​ 字符类型:char型数据用来表示通常意义上的“字符”;字符常量是用单引号括起来的单个字节;C#字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示;C#余元中还允许使用转义字符’\‘来将其后的字符转变其他的含义

转义字符
\uxxxx      1到4位十六进制数所表示的字符
\'          单引号字符
\"          双引号字符
\\          反斜杠字符
\r          回车
\n          换行
\f          走纸换页
\t          横向跳格
\b          退格

​ 字符串类型:String 是引用类型,但对字符串常量有特殊处理:“abcd1234”、@“abcd”、Pqrst"

​ 使用数据类型要注意:引用类型与值类型是由其类型定义的,而不是由其使用决定的

二、运算符与表达式

运算符
算术运算符     +,-,*,/,%,++,--
关系运算符     >,<,>=,<=,==,!=
逻辑运算符     !.&,|,^,&&,||
位运算符       &,|,^,~,>>,<<
赋值运算符     =
扩展赋值运算符  +=,-=,*=,/=
字符串连接运算符  +

扩展赋值运算符

运算符 用法举例 等效的表达式
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b
&= a&=b a=a&b
|= a|=b a=a|b
^= a^=b a=a^b
<<= a<<=b a=a<
>>= a>>=b a=>>b

当有不同种类的混合运算时:int→long→float→double

编程提示

类型的转换
    字符串转成数值;
		double.Parse(s) int.Parse(s)
    数字转成字符串:
        10.ToString()
        ""+10
    使用Convert
        Convert.ToInt32(textbox.1Text)
        Convert.ToDouble("123.45")
        Convert.ToDateTime("2009-10-01 14:00")

三、流程控制语句

1、简单语句

System.Console.Writer("Hello World");
b=a>0?a:-a;
s=TextBox1.Text;
d=int.Parse(s);    

2、分支语句----if

if(条件表达式)
    语句块
else
    语句块
    
if((year%4==0&&year%100!=0)||(year%400==0))
    Console.WriteLine(year+"是闰年");
else    
	Console.WriteLine(year+"不是闰年");

3、多分支语句------switch

switch(exp)
{
        case const1;
        	statement1;
        	break;
        case const2;
            statement2;
        	break;
        ......
        case constN;
        	statementN;
        	break;
        [default :
        	statement_default;
        	break;]
}

变量除了整形、枚举型,还可以用字符串
不能随便贯穿,必须有break;(除非几个case连起来,中间没有别的语句)    

4、循环语句

语句在循环条件满足的情况下,反复执行特定代码

循环五要素:初始化部分、循环条件部分、循环体部分、迭代部分、“结束后处理”

s=0;
for(int i=1;i<=100;i++) s+=i;
Console.Write(s);

​ 循环语句for

语法格式:
for(init_statement;test_exp;alter_statement)
{
    body_statement
}

应用举例
int result=0;
for(int i=0;i<=100;i++)
{
    result+=i;
}    
System.Console.Write("result="+result);

​ 循环语句while

语法格式:
[init_statement]
while(test_exp)
{
    body_statemet;
    [alter_statement;]
}

应用举例
int result=0;
int i=1;
while(i<=100)
{
    result+=1;
    i++;
}
System.Console.Write("result"+result);

​ 循环语句do/while

至少执行一次
语法格式
[init_statement]
do{
    body_statement;
    [alter_statement;]
}while(test_exp);

应用举例
int result=0;
int i=1;
do{
    result+=1;
    i++;
}while(i<=100)
System.Console.Write("result="+result);    

​ 跳转语句

break语句:结束循环(相当于VB中的Exit Do,Exit For)
continue语句:进入下一次循环
goto语句:跳转到某个语句标号
try{}catch{}语句:异常的捕获

四、数组

1、数组是多个相同数据的组合

数组属于引用类型

一维数组的声明方式:

int[] a1;
double []b;
Mydate []c;

C#中在声明数组的时候不能指定其长度(数组的个数)

2、数组初始化

动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行
int []a=new int[3];
a[0]=3;
a[1]=9;
a[2]=8;

MyDate []dates;
dates=new MyDate[3];
dates[0]=new MyDate(22,7,1964);
dates[1]=new MyDate(1,1,2000);
dates[2]=new MyDate(22,12,1964);


静态初始化
在定义数组的同时就为数组元素分配空间并赋值
int[] a={3,9,8};
int[] a=new int[]{3,9,8};

MyDate[] dates={
    new MyDate(22,7,1964);
    new MyDate(1,1,2000);
}

默认初始化
数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化    

3、数组元素的引用

​ 数组元素的引用方式

​ index为数组元素下标,可以是整型常量或整型表达式

​ 每个数组都有一个属性Length指明它的长度,例如:a.Length指明数组a的长度(元素个数)

4、foreach语句

foreach可以方便地处理数组、集中元素
int[] ages=new int[10];
foreach(int age in ages)
{}
foreach是只读式的遍历

5、复制数组

Array.Copy方法提供了数组元素复制功能:

//源数组
int source={1,2,3,4,5,6};
//目的数组
int[] dest={10,9,8,7,6,5,4,3,2,1};
//复制源数组中从下标0开始的source.length个元素到目的数组,从下标0的位置开始存储
Array.Copy(source,0,dest,0,source.Length);

6、多维数组

二维数组举例
int [,] a={{1,2,3},{3,4,0},{5,6.7}};

可以用a.GetLength(0),a.GetLength(1)来获得各个维度的长度

7、交错数组

C#中交错数组是数组的数组
    
int [][]t=new int[3][];
t[0]=new int[2];
t[1]=new int[4];
t[2]=new int[3];

你可能感兴趣的:(C#学习笔记,c#,学习,开发语言)