.net程序员面试宝典
.net程序员面试宝典
1.string str=new string("a")和string str = "a"有什么区别?
string str = "a"; 这个只是一个引用,内存中如果有“a"的话,str就指向它,如果没有才创建如后还用到"a"这个字符串的话并且是这样用: string str1 = "a"; string str2 = "a"; string str2 = "a"; 这4个变量都共享一个字符串"a" 而string str = new string("a");是根据"a"这个string对象再次构造一个string对象,将新构造出来的string对象的引用赋给str
2.判断字符串变量str是否为空的一下三种方法哪个性能更优
a、str=="";b、str==string.empty;c、str.length==0;?答案是c;
3.string与string的区别
string、int是c#定义的类型,而string、int32是.net类型即是cts类型; string 是 .net 框架中 system.string 的别名。string在编译的时候会转化为string类
4.虚方法(virtual )和抽象方法(abstract)的区别?
1:抽象方法仅有声明,而没有任何实现,如abstract somemethod();,虚方法却不能如此
virtual用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
2:子类继承父类,可以对父类中的虚方法进行重写、覆盖、不处理三种处理(见5),对抽象方法却必须实现
5.子类对父类中虚方法的处理有重写(override)和覆盖(new),请说明它们的区别?
有父类parentclass和子类childclass、以及父类的虚方法virtualmethod。有如下程序段:
parentclass pc = new childclass();pc.virtualmethod(...);
如果子类是重写(override)父类的virtualmethod,则上面的第二行语句将调用子类的该方法
如果子类是覆盖(new)父类的virtualmethod,则上面的第二行语句将调用父类的该方法
6.抽象类(abstract)和接口(interface)的区别
抽象类可以有自己的实现,接口却仅有声明,可以有自己的静态数据字段;
java和c#中可以实现多个接口,却只能继承一个抽象类(或者非抽象类)(单继承,和c++的多继承不同);
7.填空:
(1)面向对象的语言具有 继承性、多态性、封装性。
(2)能用foreach遍历访问的对象需要实现 _ienumerable___接口或声明_getenumerator_方法的类型。
(3)列举中的五个主要对象
connection,command,datareader,dataadapter,dataset
connection 连接对象
command 命令对象,指示要执行的命令和存储过程!
datareader是一个向前的只读的数据流。
dataadapter是功能强大的适陪器,支持增删改查的功能
dataset是一个数据级对象,相当与内存中的一张表或多张表
8.不定项选择:
(1) 以下叙述正确的是:bc
a. 接口中可以有虚方法。 b. 一个类可以实现多个接口。
c. 接口不能被实例化。 d. 接口中可以包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有: bcd
a. executenonquery b. executescalar c. fill d. executereader
9.简述 private、 protected、 public、 internal 修饰符的访问权限。
a.private:关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的, 同一体中的嵌套类型也可以访问那些私有成员
b.protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。有关 protected 与其他访问修饰符的比较,请参见可访问性级别,只有在通过派生类类型发生访问时,基类的受保护成员在派生类中才是可访问的
c.internal关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的
d protected internal 它可以看作是protected与internal的并集,意思是:如果是继承关系,无论在不在同一程序集里都能访问;如果不是继承关系,那么只能在同一程序集内访问。
e.public具有最高级别的访问权限,对访问成员没有限制。
10.写出一条sql语句:取出表a中第31到第40记录(sqlserver, 以自动增长的id作为主键, 注意:id
可能不是连续的。)