语句
语句是执行操作的命令,c#语句遵循良好定义的规则集。
这些规则描述语句的格式和构成,统称为语法.
描述语句做什么的规范称为语义.
如
Console.WriteLine("Hello world")
没有终止分号,上面的语句不能编译.
…
…
…
…
标识符
标识符是对程序中各个元素进行表示的名称。
c#的标识符必须遵循以下语法规则:
1.只能使用字母、数字和下划线
2.标识符必须以字母或下划线开头
比如下面这些就是有效的标识符:
hello, _num, result2
下面这些不是有效的标识符:
hell$,99h
注意:c#区分大小写,football和Football是不同的标识符。
…
…
…
关键字
c#保留77个标识符供自己使用,这些标识符称为关键字
程序员不能出于自己的目的而重用这些标识符。
比如
详细的可以去查看官网。
…
…
…
变量
变量是容纳值的一个存储位置。
命名变量
统一的命名规范有利于减少BUG.为变量采用恰当的命名规范是很重要的,下面是一些常规建议。
1.不要以下划线开头,虽然合法,但限制了和其他语言的代码的互操作性。
2.最好不要创建仅仅大小写不同的标识符比如football和
Football,它们很容易混淆。此外,在Visual Basic这样不区分大小写的语言中,类的重用性也会受限.
3.名称以小写字母开头.
4.使用骆驼命名法,即在包含多个单词的标识符中,从第二个单词起,每个单词都首字母大写,比如footballTeam,myFirstName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
5.不要使用匈牙利记号法
即变量名表明该变量数据类型的小写字母开始。例如,szCmdLine的前缀sz表示“以零结束的字符串。
声明变量
int age;
上面的语句声明age变量来容纳int值,
变量声明后就可以赋值,记住分号必不可少;
age = 42;
=号是赋值操作符,作用是将右侧赋值给左侧变量.
以下语句将变量的值写到控制台.
Console.WriteLine(age);
…
…
…
基元数据类型
c#内建许多基元数据类型,
比如
int long float double decimal string char bool
等
更详细的信息,可以查看官方
…
…
…
算术操作符
+,-,*,/ 分别执行加、减、乘、除.它们称为操作符或者运算符.
比如
int a;
a = 1+2;
不是所有操作符都适合所有数据类型,比如
Console.WriteLine("Gillingham" - "Forest Green Rovers");
可对char,int,long,float,double或decimal类型的值使用任何算术操作符,可以对string类型的值使用+操作符,而bool类型的值,什么操作符都不能用
…
…
…
字符串插值
Console.WriteLine($"hello{a}");
开头的$符号表明这是插值字符串,{}之间的表达式都会求值并替换,比如上面的a代表了"World"。
注意,字符串插值比+操作符高效得多,用+来连接字符串可能消耗大量内存。
此外,算术运算的结果类型取决于操作数类型。比如
3.0/2.0两个操作数的类型都是double,结果也是double
3/2结果是1,因为两个操作数的类型都是int,结果也是int。
那如果一个是double,一个是int呢?
3.0/2,这种情况下将int转换成double在执行计算,所以以上表达式的结果是double.
此外还有一个算术操作符,求余(取模)操作符,用法如下
x % y的结果就是用x除以y所得的余数
…
…
…
优先级
1 + 2 * 3
上面的表达式是先加在乘还是先乘在加呢?
在c#中 乘除类的操作符优先级高于加法类操作符,所有上面的结果是1 + 6 = 7
可用圆括号覆盖优先级规则,比如
(1+2)*3结果为9
…
…
…
结合性
如果表达式中多个操作符具有相同的优先级怎么办?
比如 10 / 2 * 3
在这种情况下,结合性决定表达式如何求值.
操作符*和/都具有左结合性,也就是从左到右求值.
结果是15
…
…
…
结合性和赋值操作符
c#的等号=是赋值操作符,它取两个操作数:右操作数被求值,结果保存到左操作数中.
int num;
int num2;
num2 = num = 10;
赋给变量num2的值就是赋给num的值.
…
…
…
递增和递减
使变量加1可以使用+操作符
count = count + 1
更好的方法是使用++操作符,可以像下面这样写:
count++;
对应地,–操作符从变量中减1,
count--;
++和–是一元操作符,它们具有相同的优先级和左结合性.
前缀和后缀
++ 和 --操作符既可以放在变量前,也可以放在变量后.
比如:
Count++;
++Count;
Count--;
--Count;
前缀和后缀的区别在于:
Count++返回递增前的Count值,++Count返回递增后的Count值,–也是类似
比如
int a;
a = 1;
Console.WriteLine(a++);
Console.WriteLine(++a);
…
…
…
声明隐式类型的局部变量
可以使用var关键字,要求c#编译器根据表达式推断变量类型。
如
var a = 1;
var b = "Hello";
a 和 b 称为隐式类型变量,在上面例子中,a是int类型,b是string类型.
注意,只有提供初始化表达式,才能使用关键字var
var a;//编译错误