关于类 的几点笔记

class StaticTools:IDisposable

 {

      public void Dispose()

{

 }

}

 using (StaticTools tools = new StaticTools())

 //the class Tool must be impliment

 //IDisposable interface

{

 }

虚拟成员不能是私有成员,因为这样会自相矛盾--不能说成员可以由派生类重定,同时派生类又不能访问它.

 

在执行混合类型的运算符重载时,它们中必需确保没有相同的签名的运算符重载。而且操作数的顺序与运算符重载的参数顺序相同,否则操作就会失败!

没有抽像接口,抽像类可以继承了接口,但必须实现它.

抽象类可以有非抽象成员.非抽象类不能有抽象成员.

 

接口中的成员访问权限,在实现它的类当中,两者权限必须相同.

派生类重写基类中的虚拟成员,访问权限必须相同,不能放大或缩小

派生类用关键字 NEW 隐藏基类中的成员可以缩小访问权限,但不能放大

派生类用关键字 NEW 隐藏基类中的虚拟成员,此派生类的派生类便不能再重定隐藏掉的虚拟成员

 

     bool j =(<objectname>.GetType ()==typeof(<classname>));

只有当<objectname>是<classname>的一个实例(是派生类或父类也不行),j才能为真.否则为假.

 

    接口和抽象类都不能直接实例化,但可以声明它们的变量.如果这样做,就可以使用多态性把继承这两种类型的对象指定给它们的变量.接着通过这些变量来使用这些类型的成员,但不能直接访问派生对流的其他成员.

  

接口不能包含字段 构造函数 静态成员或常量.

接口不能继承。

 

在考虑是深度复制还是非深度复制时,考虑的被操作的对象是引用类型不是值类型,而不必考虑自身的数据类型,因为这与自身的类型是无关的。

 

A =B  is C,当B是C的派生类,实现接口C的的类,或继承实现接口C的类的子类,A为真。

      当B是实现接口C的的结构,A为真

当父类B是由派生类型C转化而来时,A为真。反知B不是由派生类型C转化而来时为假.

 

一些重载运算符必须成对出现,如<>和>= <=等.

可以重载的运算符:

一远运算符:+,-,!,++,~,--,true,false

二元运算符:+,-,*,/,&,%,|,^,<<,>>

比较运算符:==,!=,<,>,<=,>=

 

    class jj<T1>
    {
        public T1 iner;
        public jj()
        {
            iner = default(T1); //DEFAULT关键字在这里有用,当T1为值类型时为0,为引用时为null
        }
        public void kk()
        {
            iner = default(T1);
        }
    }

 

基类的约束会自动被它的派生类所继承.

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值