@使用预算符?防止除数为0 for(int i = -5;i<6;i++) if(i !=0 ? true : false) Console.Write("100 /" + i + "is " +100/i); @C#访问控制--encapsulation(封装) public protected internal internal//同一程序集(assembly)中可以访问 protected//继承 private
@使用ref和out参数 缺省情况下,数值类型参数按值传递给方法,通过使用ref关键字,可以按引用传递任何数值类型参数,即允许方法改变调用的实参。通过使用out关键字,可以返回一个以上的值,注意our参数总是被看作“未分配”,即被认为没有初值。 //定义 public void swap(ref int a,ref int b) { int t; t = a; a = b; b = t; } //调用 int x =10,y = 20; swap(ref x,ref y); //注意:通过ref传递的实参在调用之前必须赋值。 //返回面积并判断是否正方形 //定义 public int rectInfo(out bool isSquare) { if(side1==side2) isSquare = true; else isSquare = false; return side1*side2; } //调用 int area; bool isSqr; area = rectInfo(out isSqr);
@使用可变数量的参数--params修饰符 params修饰符用来声明一个数组参数,这个数组参数可以接收0个或多个实参。当方法既有正规参数又有params参数时,params参数必须位于参数表的最后面。而且在任何情况下都只能有一个参数。 //定义 public int minVal(params int[] nums) { int m; if(nums.Length == 0) { Console.WriteLine("Error:no argments."); return 0; } m = nums[0]; for(int i=1;i<nums.Length;i++) if(nums[i]<m) m = nums[i]; return m; } //调用 int min; int a = 10 ,b = 20; min = minVal(a,b); min = minVal(a,b,50); min = minVal(1,20,36,52,456,789);
@通过this调用重载的构造函数 通过this调用构造函数的原因之一是它避免了不必要的代码重复;另一个好处是可以建立带隐含“缺省实参”的构造函数。如: public XYCoord(int x):this(x,x){...} //例如: using System; class XYCoord { public int x,y; public XYCoord():this(0,0) {...} public XYCoord(XYCoord obj):this(obj.x,obj.y) {...} public XYCoord(int x,int y) {...} }
@C#中的Main()形式 static void Main() {} static int Main() {} static int Main(string[] args){} static void Main(string[] args){}