C#基础操作符详解(上)

时间:2022-06-01 22:14:52

1.操作符概览;

2.操作符的本质;

3.操作符与运算顺序

4.操作符详解。

1.操作符概览:

C#基础操作符详解(上)

操作符(Operator)也译为”运算符”

操作符是用来操作数据的,被操作符操作的数据称为操作数(Operand

表格从上往下优先级递减,同一行运算符的优先级一样一般按从左到右算,

“=”赋值操作符,是先运算右边的值再运算左边的值,所以是最后运算的。

2.操作符的本质

①操作符的本质是函数(即算法)的”简记法”

假如没有发明”+”只有Add函数,算式3+4+5将可以写成AddAdd3,4),5

假设没有发明”*”只有Mul函数,那么算式3+4*5将只能写成Add3Mul4,5))

可见有操作符可读性更强。

②操作符不能脱离与它关联的数据类型(比如double数据类型的除法与int类型的除法相同数据结果不同)

可以说操作符就是与固定数据相关联的一套基本算法的简记法。

示例:为自定义的数据类型创建操作符。(格式为把方法名字改为”operator  想要定义的操作符”如:”operator +”)如下例子进一步说明了C#里面的操作符就是方法,也就是函数的一个简记法。

class Person { public string Name; //public static List<Person>GetMary(Person p1, Person p2)(一般方法自定义操作符之前) public static List<Person>operator +(Person p1, Person p2) { List<Person> people = new List<Person>(); people.Add(p1); people.Add(p2); for (int i = 0; i < 11; i++) { Person child = new Person(); child.Name = p1.Name + "&" + p2.Name + "‘s child"; people.Add(child); } return people; } }

3.操作符与运算顺序

①操作符的优先级

可以使用圆括号提高被括起来的表达式的优先级。

圆括号可以嵌套。

不像数学里面有方括号和花括号,在C#语法中”[]”与”{}”有专门的用途。

②同优先级操作符的运算顺序

除了带有赋值功能的操作符,同优先级操作符都是有左到右进行运算,

带有赋值功能的操作符的运算顺序是由右到左(比如赋值运算符”=”),

与数学运算不同,计算机语言的同优先级运算没有”结合率”:

3+4+5只能理解为Add(Add(3,4),5)不能理解为Add(3,Add(4,5)

操作符详解

4.1基本操作符

①(成员访问操作符)”.”操作符(上表中写为X.Y):四种功能;

*访问命名空间当中的子集命名空间;

*访问名称空间当中的类型;

*访问类型的静态成员(静态成员隶属于类本身故用类可以访问,而用类的对象不能访问类的静态成员);

*访问对象的成员(包括数据成员和方法);

②方法调用操作符”()”即方法后面跟着的那对圆括号(上表写为f(x))。

调用方法一定要加圆括号,但是:

Action myAction = new Action(c.PrintHello);//PrintHello方法交给委托对象myAction管理

myAction();//这样在委托对象后面加个圆括号就相当于调用了被它管理的方法了,

这个时候PrintHello方法可以不带圆括号。

③元素访问操作符”[]”

int[] myIntArray = new int[13];//创建int数组的实例13个元素

int[] myIntArray2 = new int[]{1,2,3,4,5};//也可以在后面加花括号输入相应值,这对或括号叫做"初始化器"[]里不写数组大小会根据初始化器自动赋值...

myIntArray[0]=2;//访问的是第一个数组元素,访问数组元素,[]里写的是偏移量0开始

Dictionary<string, Student> stuDic = new Dictionary<string, Student>();//一个类名后面,跟着一个尖括号表示这个类是泛型