1.下列选项哪个是引用类型()?
A. enum类型 B. struct类型 C. string类型 D. int类型
答案:C
2.下列描述错误的是()?
A. 类不可以多重继承,而接口可以
B. 抽象类自身可以定义成员,而接口不可以
C. 抽象类和接口都不能被实例化
D. 一个类可以有多个基类和基接口
答案: D 一个类最多有一个基类,可以实现多个接口。
3.DataReader 和 DataSet 的异同 ?
DataReader 使用时,始终占有 SqlConnection 连接,在线操作数据库。
每次只往内存中加载一条数据,所以占用的内存是非常小的,是只进的,只读的。
DataSet 则是将数据一次性加载到内存中,抛弃数据库连接 操作完毕后即放弃数据库连接(非连接模式)
DataSet将所有数据全部加载到内存中,所以比较消耗内存,但是要比DataReader要更灵活,可以动态添加行,列,数据,对数据库进行回传更新操作(动态操作读入到内存当中的数据)。
4.public static const int a = 3; 这段代码有错误吗?
答案:const 不能被修饰为 static ,因为定义为常量后(const)就是静态的(static)。
5. C# 语法支持多重继承么?
答案:类之间不支持,接口之间支持。类对接口叫实现,不叫继承。好比类是爹,接口是能力,可以有多个能力,但是只能有一个爹。
6.C#中所有对象的共同基类是什么?
System.Object
7.通过超链接怎么传递中文参数?
答案:用URL编码,通过QueryString传递,用urlencode编码,用urldecode解码。
8.String string , Int32 int , Boolean bool 的区别?
String Init32 Boolean 等都属于.NET中定义的类,string int bool 相当于C#中对这些类起的别名。 CTS 公共类型系统
9.Server.Transfer 和 Response.Redirect 的区别是什么?
答案:Server.Transfer 仅是服务器中控制权的转向,在客户端浏览器地址栏中不会显示出跳转后的链接地址。Response.Redirect则是完全的跳转,客户端将会得到跳转的地址,并且重新发送请求链接,这样,在客户端浏览器地址栏中就会显示出跳转后的链接地址。
Server.Transfer是服务器请求资源,服务器直接去请求目标URL,将那个URL中的相应内容读取出来,然后将内容发送给浏览器,浏览器根本不知道服务器发送给他的内容是从哪来的,所以浏览器地址栏中的地址还是原来的地址。在这个过程中,客户端浏览器和Web服务器进行了一次交互。
Response.Redirect是服务器端根据逻辑,发送一个状态码,告诉浏览器去重新请求那个地址,一般浏览器会根据刚才请求的所有参数去重新请求。这个过程中,客户端浏览器和Web服务器进行了两次交互。
Server.Transfer 不可以转向外部网站,Response.Redirect 可以。
Server.Execute 和 Server.Transfer 类似 ,但是把执行结果嵌入到当前页面。
10.不是说字符串是不可变的吗? string s = "abc"; s = "123"; 不就是变了吗?
String是不可变的。在这段代码中,字符串变量s一开始指向 一个string对象,内容是 abc 。后来又指向了另一个string对象,内容是 123。原先的对象并没有发生改变,只是变量 s 不再指向他了,而是指向了另一个对象。原来那个字符串对象还存在内存中,只是 s 这个引用变量不再指向他了。