文档介绍:
C#
什么是委托?委托和事件是什么关系?
答:简单说:委托是一个方法容器,里面能够装载若干个含有相同署名方法引用地址,那么调用委托,就相当于同时调用了该容器内全部方法。
委托能够将方法作为参数传输给方法.
事件是一个特殊委托
什么是反射?
答: 反射提供了封装程序集,模块和类型对象,能够用反射动态地创建类型实例,将类型绑定到现有对象,或从现有对象类型里获取类型,然后调用类型方法或访问字段和属性。
C#中是否能够从多个类中继承?怎样实现多重继承?
答:不能,要想实现多继承,就用接口
什么是密封类?
答: 密封类是类一个,用sealed修饰,不能用作基类。所以,它也不能是抽象类。密封类关键用于预防派生。
using关键字有多个用途?
答:两种
(1)应用命名空间;
(2)定义一个范围,在范围结束时处理对象
#warning和#error分别用途是什么?
string和StringBuilder有什么区分?
答: String 对象是不可改变。StringBuilder 对象是动态对象
string 是常量,定义后不能改变,
stringbuilder定义后 能够改变,且线程不安全
const和readonly区分?
答:const申明常量,raadonly是运行是常量
new、virtual、abstract、override、sealed区分?
New :(1)new 一个对象 (2)隐藏基类中方法(3)在泛型时,new一个泛型类
Virtual: virtual 关键字用于修饰方法、属性、索引器或事件申明,并使它们能够在派生类中被重写。virtual 修饰符不能和 static、abstract, private 或 override 修饰符一起使用。
Abstract: abstract 修饰符能够和类、方法、属性、索引器及事件一起使用。在类申明中使用 abstract 修饰符以指示某个类只能是其它类基类。标识为抽象或包含在抽象类中组员必需经过从抽象类派生类来实现。
Override:重写:重写基类中方法, 不能重写非虚方法或静态方法。 重写基方法必需是 virtual、abstract 或 override 。override 申明不能更改 virtual 方法可访问性。 override 方法和 virtual 方法必需含有相同访问等级修饰符。
Sealed:密封类不能作为基类, 密封类不能同时为抽象类
abstract class和interface有什么区分?
答: 区分一,二者表示概念不一样。抽象类是一类事物高度聚合,那么对于继承抽象类子类来说,对于抽象类来说,属于“是”关系;
而接口是定义行为规范,所以对于实现接口子类来说,相对于接口来说,是“行为需要根据接口来完成”。
区分二,抽象类在定义类型方法时候,能够给出方法实现部分,也能够不给出;而对于接口来说,其中所定义方法全部不能给出实现部分。
区分三,继承类对于二者所包含方法实现是不一样。继承类对于抽象类所定义抽象方法,能够不用重写,也就是说,能够延用抽象类方法;
而对于接口类所定义方法或属性来说,在继承类中必需要给出对应方法和属性实现。
区分四,在抽象类中,新增一个方法话,继承类中能够不用作任何处理;
而对于接口来说,则需要修改继承类,提供新定义方法。
以下给出二者简单对比表格。
 
接口
抽象类
多继承
支持
不支持
类型限制
没有
有,只能是引用类型
方法实现
继承类型中必需给出方法实现
继承类中能够不给出
扩展性
比较麻烦
相对比较灵活
多层继承
比较麻烦,需要借助虚函数
比较灵活
公共变量和属性区分?
答: (1)属性只能经过初始化类,创建对象后才能使用。 变量则没有这方面要求,
(2) 属性没有固定地址,属性赋值只是使指针;变量赋值只是变量地址储存所指地址值
结构和类区分?
答:结构和类含有大致语法,不过结构受到限制比类要多。结构不能申明有默认结构函数,为结构副本是又编译器创建和销毁,所以不需要默认结构 函数和析构函数。结构是值类型,所以对结构变量所做改变不会影响其原值,而类是应用类型,改变其变量值会改变其原值。申明结构用Struck关键 字,申明类用class关键字,向方法传输结构是时是经过值传输,而不是经过引用。和类不一样,结构实例化能够不使用New关键字。类能够实现接口。
?
答:     全部是设计网页。