(2012-07-09 15:55:34)
1.C#新建无名类是用:new 类名(参数);而javascript是用:类名(参数);
2.可以使用#region和#endregion进行区域注释。
3.使用C#的enum类型定义变量和使用Enum类不同,后者需要using System;
enum常为public enum Day{M,T,W}。也就是说当成一个结构体一样去使用。枚举结构内部有编号,默认从0开始,即M=0,T=1,W=2。枚举变量只能取定义时指定的变量名或变量名代表的数值。
4.C#常用:①private int testData; ②public int TestDate{ get{含有return的函数段} set{含有value的函数段} }
与函数相比,TestDate呈现两面性,①B=TestDate;使用了get{}的返回值②TestDate=B;使value为B传入set{}。
注意TestDate不一定就是testDate,也可以是判断语句后经过某种运算产生的testDate。
在封装并操纵单个数据的属性上set与get比函数更有优势。
5.C#对资源自动回收,不用对new出的东西delete掉。如果确实需要强行让某个东西提前释放,可以将对象设置为null,此时资源即可被回收。(貌似有时也可以用.dispose)
6.C#的资源在没有被引用时会被释放,因此将A类对象B去new出资源后,传入某个函数test(A C)时,令C=null不能释放B申请的资源,因为B还保存引用
7.C#在A类中调用B类的函数,并且A类传递了C类的对象作为实参。此时注意,这种传递是引用传递,不是C++的拷贝传递,因此B类函数内C类对象即是A类传递的那个对象,在函数内修改C类对象,最后返回A类后,C类对象已经改变。
由于不是C++的拷贝传递,因此不用考虑在C类中增加一个类似拷贝函数那样形参是C类对象的函数进行处理。
不过值得注意的是如果是int类型变量,那样的传递是拷贝传递,不是引用传递。形参和实参仅仅是初始相等,不互相影响。因此对C类对象内部int变量进行处理,此时最好去传递整个C类对象。