10. 索引生成器
  一个容器对象表现为对象数组,必须提供一种索引方法访问其包含的对象。如ArrayList。
  定义方法同属性类似:
  public object this(int key){
   get{return something;}
   set{set something;}
   }
  

9. 特性(attribute)
  不明白是一些什么东东,可能是对一些函数,类进行非功能方面的标识,用反射可以得到这些标识。很多Attribute是指导编译器的。
  如编译嚣将对象序列化生成XML时,用[XmlIgnore()]就可不生成该字段。用[Obsolete("someInformation")]告诉此方法已经过期,[STAThread]表示静态变量安全。
  参见:http://blog.joycode.com/5drush/archive/2003/11/08/6074.aspx
  

8. 事件
  事件是类型为事件,约定参数的委托:
  public delegate int DelegateMethod(object sender, SomeEventArgs e);
  public event DelegateMethod DelegateMethodHandler;
  
  调用时,sender总为this, someEventArgs 为System.EventArgs或其子类。

7。委托
  A。在Class1中声明委托: public delegate int DelegateMethod(int para);
  B. 在Class1中的某个函数调用委托方法:  DelegateMethodHandle(realPara);
  C, 在Class2中写一个实际方法,签名同委托的声明同委托声明。 public static int Func(int para)
  D。在Class3中实例化委托将传给Class1的实例:
   Class1.DelegateMethod delegateHandler=new Class1.DelegateMethod(Class2.Func)
  (说明:Class2.Func既可以是一个静态方法,也可以是对象的非静态方法)

6.Checked 同unChecked
 unchecked 溢出后不会弹出错误,如一个short等于最大值之后,再加一个数,其值会变为负数。

5.自定义类型转换:
  public static explicit operator int(MyClass myObject)
  {
   return myObject.intValue();
  }

4 重载操作符:
 public static operator >(MyClass left, MyClass right)
  {
   return (left.value>right.value);
  }

3. abstract方法同virtual 方法:
  abstract必须包含在abstract类中,virtual可以在普通类中。


2. New and override
  override 重写方法提供从基类继承的成员的新实现, new方法中断子类方法同基类方法的联系。 如:
 BaseClass myObject=new SubClass();
 如果用new重写NewMethod()方法,则myObject.NewMethod(); 运行的方法实际是BaseClass中的方法。而override重写则运行的是SubClass中的方法。
 
 override的方法的方法必须是virtual  或abstract 的
 
1.  Get and Set property
 public int aaaPropertySet{
   get{return base.x;  }
   set{base.x=value; }  //"value" is prezerve word
 }

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐