C#小知识(2)
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的值不必初始化,传出的值在函数内完成初始化并赋值。这是函数返回一个值的绝佳途径啊。

小知识评级:★★★★★☆☆☆☆ 发表者:{佚名} 3-17 [ 0]

 分享到:
 
 
我是:
本站注册用户
用户名: 密码:
非本站注册用户
我来评论:

评论字数在2000字以内。评论即可得2分,评论被采用后,根据评级可得到相应的积分和智慧果。
比如:评论评级为5,可得50分和5个智慧果。

 

 
 
 
 
 
 
































 

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