1、override与重载的区别
override修饰符,覆写一个基类中的方法...重载则是将将同名方法重新写过,达到同名的函数实现不同的功能.从而实现了一个方法有不同的版 本.override与重载的本质区别是,加入了override的修饰符的方法,此方法始终只有一个被你使用的方法..这个区别就好像:
override就好像
你叫张三,你爸爸给修改了名字为李四...
重载就好像
你叫张三,但是别人也可以叫张三..
2、.net的错误处理机制是什么
错误的处理顺序:finally先,catch次之,最后退会try代码..取消此次操作.返回catch中的异常信息.当然,你也可以定制自己的错误处理机制...如果你的异常处理中包含finally块.则此finally无论是否发生异常始终会被执行...
3、C#中接口和类的异同
接口和类的区别是本质的..类是负责功能的实现,而接口则是负责功能的定义..项目中可以通过实现接口来规范类,操作类,抽象类的概念..从而达到高度的抽象..你也可以称接口为一个没有功能的类.
override是实现抽象方法,用于当基类不能为一个方法提供任何有的意义的实现的时候,相当于怎么说呢,如果一个基类中对一个方法的方法体不明 确的时候,就可以定义他成为一个抽象方法,这样继承他的子类就被迫必须实现这个方法,否则就不能实例化,这是我的个人理解,重载不用说了吧,自己理解了就 知道他们的区别在哪。
4、DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对 SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小 的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
5.
using system;
enum color{
red,
green = 10,
blue
}
class test{
static void main() {
console.writeline(stringfromcolor(color.red));
console.writeline(stringfromcolor(color.green));
console.writeline(stringfromcolor(color.blue));
}
static string stringfromcolor(color c) {
switch (c) {
case color.red:
return string.format("red = {0}", (int) c);
case color.green:
return string.format("green = {0}", (int) c);
case color.blue:
return string.format("blue = {0}", (int) c);
default:
return "invalid color";
}
}
}
输出枚举成员名称和它们的关联值。输出为:
red = 0
green = 10
blue = 11
原因如下:
枚举成员 red 被自动赋予零值(因为它不具有初始值设定项并且是第一个枚举成员)。
枚举成员 green 被显式赋予值 10。
枚举成员 blue 被自动赋予比文本上位于它前面的成员大 1 的值。
枚举成员的关联值不能直接或间接地使用它自己的关联枚举成员的值。除了这个循环性限制外,枚举成员初始值设定项可以自由地引用其他的枚举成员初始值设定 项,而不必考虑它们所在的文本位置的排列顺序。在枚举成员初始值设定项内,其他枚举成员的值始终被视为属于所对应的基础类型,因此在引用其他枚举成员时, 没有必要使用强制转换。