C#基础知识
C#基础知识一览
- 摘要:本文总结了C#基础相关的各类知识。
- 标签:C#基础知识
1 、C#中数据类型的分类:
(1)值类型:它存储在内存的堆栈中,表示实际数据。包括:基本数据类型(字符串除外)、结构、枚举。
(2)引用类型:它存储在内存的堆中,表示对象地址。包括:字符串、数组、类、接口、委托。
2、 C#声明常量的声明方式:
(1)静态常量(const):< 访问修饰符> 数据类型 常量名称=常量值
(2)动态常量(readonly):
C#基础知识之静态常量(const)
定义:声明的同时要设置常量值。
类型限制:首先类型必须属于值类型范围,且其值不能通过new来进行设置。
对于类对象而言:对于所有类的对象而言,常量的值是一样的。
内存消耗:无。
综述:性能要略高,无内存开销,但是限制颇多,不灵活。
C#基础知识之动态常量(readonly)
定义:声明的时候可以不需要进行设置常量值,可以在类的构造函数中进行设置。
类型限制:没有限制,可以用它定义任何类型的常量。
对于类对象而言:对于类的不同对象而言,常量的值可以是不一样的。
内存消耗:要分配内存,保存常量实体。
综述:灵活,方便,但是性能略低,且有内存开销。
3 、 装箱和拆箱:
(1)装箱:将值类型转换成引用类型。(is as)
(2)拆箱:将引用类型转换成值类型。
4 、Typeof运算符:
C#没有自己的内库,但是它共享了.Net的内库。C#中的基本数据类型只是.Net基本数据类型的别名而已。获得系统原型对象的类型。
5、访问域,访问修饰符
(1)访问域:public、 private 、internal、 protected、protectedinternal
(2)访问修饰符:partial、、sealed、virtual、override 、abstract 、new、 extern、 static
6 、构造函数和析构函数:
(1)构造函数:与类同名,无返回值。可以重载。
(2)析构函数:与类同名,无返回值。不能重载。一个类只有一个析构函数。由垃圾回收器自动调用。
7、构造函数调用:
(1)调用基本构造函数::base() 或:base(string name,int age)
(2)调用基类普通方法: base.基类方法名()
8 、方法调用:
(1)实例对象调用:类名.方法名([参数列表])
(2)静态类调用:类名.方法名([参数列表])
9 、方法重载与方法重写:
(1)方法重载:在同一个类中的方法,返回类型相同,方法名相同,方法签名不同。
(2)方法重写:在基类与子类中,基类方法是:virtual、abstract 时,方可在子类中用override重写基类方法。
10、OOP编程三大特点:
(1)封装:
(2)继承:
(3)多态:多态的两种表现形式:方法重载和方法重写。
11、抽象类和接口的区别与联系:
C#基础知识之抽象类:至少含有一个抽象方法的类,不能被实例化。包含属性、方法声明、功能定义和实现。
C#基础知识之接口:接口是一个特殊的抽象类。仅限于对方法、索引器、及属性的声明。
12 、委托:
(1)它包含对方法而不是方法名的引用,使用委托可以在运行时动态设定要调用的方法。委托将名称与方法的定义连接起来。
(2)委托的作用:定义事件句柄(EventHander),目的:自定义事件。委托实际上是函数的指针,它能引用函数。
(3)使用委托的步骤:
a 定义委托:[访问修饰符] delegate 返回类型委托名()
b 实例化委托:使其指向某个方法。
c 使用委托:
13、事件:
(1)事件(Event):是一种函数成员,是类和对象发出的消息。以通知发生了某个特定的行为或某个特定的条件已经成立。
定义事件:
[访问修饰符] event 委托名 事件名
定义事件时,发行者首先定义委托,然后根据委托定义事件。
Public delegate void delegateMe() //定义委托
public event delegateMe eventMe; //定义事件
(2)订阅事件:只是添加了一个委托,事件引发时该委托将调用一个方法。
订阅事件:
eventMe+=new delegateMe(objA.Method) //objA.Method方法订阅了事件eventMe
14 、控件与组件:
(1)控件:可视化界面组件称为控件。(可视化的类),所有Windows窗体都是从System.Windows.Forms.Control类派生出来的类。
(2)组件:不含可视化的界面。
以上总结了14条C#基础知识,希望能对您有所帮助。