全部知识 文库 问答 小知识 百科
 
天天小知识
C#小知识(2)
2025-05-23
星期五
四月廿六

今天的
天天小知识


小知识分类

历史上的今天
更多应用
4.运算符优先级 很多人写了一个稍微复杂一点的式子就一直出错。很有可能是操作符的优先级没有考虑。这里把C#的操作符按照从高到低的顺序排列下来 --------------------------------------------- 1.初级操作符 () x.y f(x) a[x] x++ x-- new typeof sizeof checked unchecked 2.一元操作符 + - | ~ ++x --x (T)x 3.乘除操作符 * / % 4.加减操作符 + - 5.位移操作符 << >> 6.关系操作符 < > <= >= is 7.等于操作符 == 8.逻辑与 & 9.逻辑异或 ^ 10.逻辑或 | 11.条件与 && 12.条件或 || 13.条件操作符 ?: 14.赋值操作符 = *= /= %= += -= <<= >>= &= ^= |= --------------------------------------------- 要注意的是,位移操作符是算数操作里面优先级最低的。所以要注意是否要加括号。 最后,提醒一句,如果实在是搞不清楚,你就记着一点,乘除高于加减,其他都包括号,保证没问题哈。 5.ref和out 如果玩过C语言的话,那应该知道函数参数传递有一种引用的方法:void f(int& a) 那么,在C#里面如何实现呢?其实,ref和out两个关键字都可以说明让编译器传递变量的地址。它们的使用方法如下: 函数声明:void f(ref int a, out int b),调用函数:f(ref a,out b); 那么,他们有区别的吧。的确,他们的区别就是ref传递的必须是已经初始化的变量,而out没有这个限制(不过这时候在函数体内必须对out进行初始化,而且传入的变量要声明)。譬如说: void f(ref System.Windows.Forms.Form a){a=new System.Windows.Forms.Form();...} pubilc static void Main() { System.Windows.Forms.Form myForm; f(ref myForm);//出错!myForm必须初始化使用。把这里的所有ref改成out就不会出错了 } 另外,函数参数只有ref和out不同时编译器把他们看作同一个函数,因此不支持重载。也就是说: void f(ref int a); void f(out int a); 会出错的。 最后说一下out的用处。其实根据out的意思我们就能推测,事实上out关键字给了我们一个方法,使函数能返回许多值。传入out的值不必初始化,传出的值在函数内完成初始化并赋值。这是函数返回一个值的绝佳途径啊。
 分享到:

© 版权所有  2001-2025 知识网站
Copyright (C) 2001-2025 allzhishi.com All rights reserved
电话:15973023232  微信:zhishizaixian  ICP备案号:湘ICP备08003211号-4