C#基础

 

                                                        对象与类型

1、类与结构:(区别)

相同:都是创建对象的模板,每个对象都包含数据,并提供处理和访问数据的方法;都用new来声明实例。

不同:类是存储在堆(heap)上的引用类型,结构是存储在堆栈(Stack)上的值类型;两者在访问方式也不同;结构不支持继承;结构的无参数默认构造函数不允许替换;使用结构可以指定字段如何在内存中布局。

 

2、类成员

访问级别:

                  public----成员可由任何代码访问;

                  private----只能由类中的代码访问(默认用这个)

                  internal----只能由定义它的项目(程序集)内部代码访问

                  protected----只能由类或派生类中的代码访问

数据成员:包含了类的数据----字段、常量和事件;静态成员与整个类相关,实例成员与每个实例相关。

 

方法重载:声明同名但参数个数或类型不同的方法。重载方法不能仅在返回类型上有区别,也不能仅根据参数声明为ref还是out来区分。

 

构造函数:如果提供了带参数的构造函数,编译器就不会自动提供默认的构造函数。若想保留默认的无参构造函数就需要手动实现。

 

静态构造函数:此函数只执行一次,且通常是在第一次调用类的成员之前执行。

C#的有一个特殊语法:构造函数初始化器,从其它构造函数中调用构造函数 public Car(string model):this(model,4){}

       

        readonly:表示这个字段只能在执行构造函数的过程中赋值,或由初始化赋值语句赋值。用来声明运行时常量。

        Const:创建常量,用来声明编译时常量

 

 

                                                        继承

1、继承的类型

    实现继承:表示一个类型派生于一个基类型,拥有该类型的所有成员字段和函数。

          接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码

C#不支持多重实现继承,但允许类型派生于多个接口

  

2、实现继承

把基类函数显示声明为virtual,该函数就可以在任何派生类中重写。C#要求在派生类中函数重写另一个函数时,要使用override关键词显示声明。

属性也可以声明为virtual,规则跟方法一致,但是成员字段和静态函数都不能声明为virtual

 

要在派生类中隐藏基类的签名相同方法,需要用new关键词声明我们要隐藏的方法。如public new int MyClass(){}

 

调用函数的基类版本:base.<MethodName>(),在JAVA中用super代替base

 

抽象(abstract)类不能实例化,抽象函数没有执行代码,必须在非抽象的派生类中重写。抽象函数是虚拟的,但不需要声明为virtual

 

密封类与密封方法声明为sealed,对类来说表示不能继承,对方法来说表示不能重写。Sealed对应于JAVA中的final

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值