1、基础
语句以分号(;)结尾
用花括号({})把语句组合为块
单行注释用双斜杠开头//, 多行注释以/*开头,以*/结尾。注释可以让人更好的理解程序,编译器编译时自动忽略。要适当合适的使用注释。
C#区分大小写
所有C#代码必须包含在一个类中。类的声明用关键字clas类型和花括号{}组成修饰符用于指定用户所定义的方法的某些特性
2、变量
声明:数据类型 变量名称; 如 int i;
赋值:变量名 赋值运算符(=) 值; 如 i=1;
声明并赋值:数据类型 变量名称 赋值运算符(=) 值; 如 int i=1;
同类型多变量赋值:int x=1,y=2;
要声明不同类型的变量,需要使用单独的语句。在多个变量的声明中,不能指定不同的数据
如 正确方式: int i=1; bool isOk=true;
不正确方式:int i=1,bool isOk=true;
变量初始化
变量必须初始化之后才可以使用,否则编译器会标记警告。
变量是类或结构中的字段时,如果没有显示初始化,创建变量时会自动初始化默认值。
方法的局部变量未显示初始化时,编译器会在初始化之前使用它的地方报错。
类型推断
类型推断使用var关键字,编译器可以根据变量的初始化值 “推断”变量的类型。
声明:var i=1;
i在它的作用域内就是int类型。
使用规则:
变量必须初始化。否则,编译器就没有推断变量类型的依据。
初始化器不能为空。
初始化器必须放在表达式中。
能把初始化器设置为一个对象,除非在初始化器中创建了一个新对象
声明了变量,推断出了类型后,就不能改变变量类型了。
变量的类型确定后,就遵循其他变量类型遵循的强类型化规则。
变量作用域
变量的作用域是可以访问该变量的代码区域。
规则:
类在的作用域内,其字段也在该作用域。
局部变量存在于声明变量的块语句或方法的作用域内。(声明语句所在的花括号内{})
在for、while或类似语句中 声明的局部变量存在于该循环体内。
局部变量的作用域冲突
不同作用域的变量可以同名。
同名的局部变量不能在同一作用域内声明两次
字段和局部变量的作用域冲突
类型级别声明的变 量看作字段,而把在方法中声明的变量看作局部变量。
在方法中调用同名变量时,自动隐藏同名的类级变量,如需访问类级变量,需要使用this
例如
class test { int i{get;set;} void a() { int i=20; //局部变量 Console.WriteLine(i);//输出的是20 Console.WriteLine(this.i);//输出的是字段i的值 } }
3、常量
在声明和初始化变量时j在变量的 前面加上关键字 co11晚 ,就可以把该变量指定为一个常量
规则:
常量必须在声明时初始化。指定了其值后,就不能再改写了。
常量的值必须能在编译时用于计算。因此,不能用从一个变量中提取的值来初始化常量。 如果需要这么做,应使用只读字段
常量总是静态的¤但注意,不必(实际上,是不允许)在常量声明中包含修饰符 static。
使用常量的好处
常量使程序 变得更易于阅读。
常量使程序更易于修改。如π的取值精度可以随时调整常量π的值
常量更容易避免程序出现错误。声明常量以外的其它地方赋值时报错。
4、预定义数据类型
C#把数据类型分为:值类型和引用类型。
值类型存储在堆栈中,而引用类型存储在托管堆上。
int x,y; x=10; y=x;//x=10;y=10; x=20;//x=20;y=10; y=30;//x=20;y=30;
x和y是值类型,所以当y=x时,y复制了x的值,y存储了10,并不是指向x,所以x修改值后不影响y,y修改值时不影响x。
public class Person { public int Age{get;set;} } Person x,y;
x=new Person(); x.Age=1;
y=x;//x.Age=1;y.Age=1; x.Age=2;//x.Age=2;y.Age=2; y.Age=3;//x.Age=3;y.Age=3;
x和y是引用类型,所以当y=x时,y复制了x的指向内存的位置,x和y都存储了对象Person的内存位置,所以修改对象Person,x和y都会变化,因为x和y指向的是同一个对象。
要创建对象时,必须使用关键字new。
如果变量是一个引用类型,就可以把其值设置为null,表示它不引用任何对象,如果将引用设置为null,就不能对它调用任何非静态的成员函数或字段,否则会报错。
CTS类型
内置于,NET Framework中的数据类型就是CTS类型
C#的数据类型与CTS类型相对应。例如 int 对应 System.Int32
预定义的值类型
内置的CTS值类型表示基本类型,如整型和浮点类型、字符类型和布尔类型。
1.整型
C#支持8个预定义整数类型:sbyte、short、int、long、byte、ushort、uint、ulong
对一个整数是 int、long、uint、ulong没有任何显式的声明,则该变量默认为int类型。为了把输入的值指定为其他整数类型,可以在数字后面加上如下字符:
uint ui = 1234U;1ong l = 1234L;ulong ul = 1234UL; 大小写均可以。
2,浮点类型
C#支持2个浮点类型:float、double
如果没有对浮点型数值进行强制限定类型,默认是double。定义float类型需要 float fl=1.234F; 大小写均可以
3.decimal类型
表示更高精度的浮点数,一般用于财务计算,货币类型。不是基本类型,所以使用时会有性能损失。定义decimal d=1.234M; 大小写均可。
4.bool类型
C#的 bool类型用于包含布尔值 tue或 false
5.字符类型
单个字符数据,C#支持char数据类型
预定义的引用类型
C#支持两种预定义的引用类型:object和string
在C#中,object类型是最终的父类型,层次结构中的其它对象都是从object派生的。
object的作用
可以使用object引用绑定任何子类型的对象。
提供一般用途的基本方法。如Equals(),ToString(),GetType()等
原文:https://www.cnblogs.com/liuxiansheng1024/p/12527459.html