.net笔试考题及答案
.NET开发工程师招聘笔试题与参考答案(某大型集团公司)

招聘.NET开发工程师笔试题与参考答案(某大型集团公司)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是.NET框架的核心组件?A、CLR(公共语言运行时)B、C、D、COM(组件对象模型)2、在C中,以下哪个方法用于判断一个字符串是否为null或空?A、String.IsNullOrEmpty(string str)B、String.IsNullOrWhiteSpace(string str)C、String.IsNullOrEmpty(string str, bool ignoreCase)D、String.IsNullOrWhiteSpace(string str, bool ignoreCase)3、在.NET框架中,以下哪个类用于处理文件和网络I/O操作?A. StreamB. FileStreamC. FileInfoD. Directory4、在 MVC中,以下哪个是用于请求参数绑定的属性?A. ActionResultB. ModelBindAttributeC. ModelStateD. ViewBag5、在.NET开发中,以下哪个类用于创建和管理线程?A. ThreadPoolB. ThreadC. TaskD. Monitor6、在C中,以下哪个关键字用于定义接口?A. InterfaceB. AbstractC. VirtualD. Override7、以下哪个特性是.NET Framework中用于处理多线程的?A. Exception HandlingB. Asynchronous ProgrammingC. ReflectionD. Serialization8、在C中,以下哪个类是用于处理XML文档的?A. XmlDocumentB. XmlTextReaderC. XmlWriterD. XmlSerializer9、在.NET框架中,以下哪个类不是用于数据访问的对象?A. DataTableB. DataSetC. DataReaderD. StreamWriter 10、以下哪个属性用于在应用程序中配置默认的页面编码?A. Page.UICultureB. Page.CharsetC. WebConfigurationManager.AppSettingsD. HttpResponse.ContentEncoding二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术或框架是.NET开发中常用的?()A、CB、C、Entity FrameworkD、WCFE、LINQ2、以下哪些特性是.NET Core相对于.NET Framework的改进?()A、跨平台支持B、异步编程支持C、动态内存管理D、更好的性能E、模块化设计3、以下哪些技术是.NET框架中用于实现数据访问的?A. B. Entity FrameworkC. WCFD. 4、以下哪些是.NET框架中用于实现分布式计算的技术?A. .NET RemotingB. AJAXC. Windows Communication Foundation (WCF)D. Windows Workflow Foundation (WF)5、以下哪些技术或框架是.NET开发工程师在项目开发中常用的?()A. CoreB. Entity Framework CoreC. WPF (Windows Presentation Foundation)D. AngularE. Unity6、以下关于.NET Core的特点描述,正确的是哪些?()A. 跨平台B. 开源C. 高性能D. 兼容.NET FrameworkE. 需要安装Visual Studio7、关于.NET Framework中的内存管理机制,以下说法正确的是:A、.NET Framework中的内存管理是通过垃圾回收机制自动进行的。
.NET开发工程师招聘笔试题与参考答案(某世界500强集团)2024年

2024年招聘.NET开发工程师笔试题与参考答案(某世界500强集团)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是.NET Framework的核心组成部分?A、B、C、WinFormsD、C2、在C中,以下哪个关键字用于声明一个只读属性?A、constB、readonlyC、const readonlyD、static3、以下哪个是.NET框架中用于处理XML数据的命名空间?A. System.WebB. System.XmlC. System.Windows.FormsD. System.Data4、在C中,以下哪个属性用于表示一个对象是否为null?A. IsValueNullB. IsNullC. IsDefaultD. IsNullOrDefault5、以下哪个是.NET平台的核心组件?A. B. C. Windows FormsD. 所有以上都是6、在C中,以下哪个关键字用于声明一个接口?A. InterfaceB. ClassC. StructD. Enum7、在.NET框架中,以下哪个类是用于处理XML数据的?A. System.Data.DataSetB. System.Xml.XmlDocumentC. System.IO.StreamReaderD. System.Windows.Forms.Form8、在应用程序中,以下哪个组件负责处理客户端请求并将其转换为服务器端的响应?A. Global.asaxB. HttpApplicationC. HttpContextD. Page9、在.NET框架中,以下哪个类用于处理线程同步?A. ThreadPoolB. MonitorC. TaskD. List 10、在C中,以下哪个方法可以用来检测一个对象是否为特定类型的实例?A. isB. asC. typeofD. ==二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术栈是.NET开发工程师常用的?()A、 CoreB、Entity Framework CoreC、WPFD、Windows FormsE、React Native2、以下关于.NET Core的说法正确的是?()A、.NET Core是.NET Framework的升级版,两者可以无缝兼容。
.Net笔试题1

.Net笔试题1:说说什么叫字符串不可变?string s="abc";s="123"字符串s不就变了吗?答:String 对象是不可改变的。
每次使用System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
String是不可变的。
在这段代码中,s原先指向一个String对象,内容是 "abc",然后我们将s指向"123",那么s所指向的那个对象是否发生了改变呢?答案是没有。
这时,s不指向原来那个对象了,而指向了另一个String对象,内容为"123",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。
扩展:在需要对字符串执行重复修改的情况下,与创建新的String 对象相关的系统开销可能会非常昂贵。
如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder 类。
例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。
.net笔试题2:BS与CS的联系与区别?答:C/S是Client/Server的缩写。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器。
在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要逻辑在服务器端实现。
浏览器通过Web Server 同数据库进行数据交互。
C/S 与B/S 区别:1).硬件环境不同:C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 一般建立在广域网之上的, 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。
2).对安全要求不同C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
.net方向笔试题

Net方向测试题及答案一.选择题1.在中,下面说法正确的是()。
(选择一项)A.machine.config用来保存的当前计算机所有应用程序的配置B.web.config通常用来保存一个站点信息的配置信息C.可以在web.config中配置访问Web目录的用户名和密码D.以上说法都正确2.执行下面的代码后,name的值是()。
(选择一项)string path = @”D:\test\imag1.jpg;string name = path.Substring(stIndexOf(“.”)+1);A.jpgB.pgC..jpgD.以上答案都不是3.在使用 AJAX的AutoComplete空间实现自动完成效果时,通过()属性可以设置用户输入多少个字母才出现提示。
(选择一项)A.MinimumPrefixLengthB.ServicePathpletionSetCountD.TargetControlID4.在中,一下关于用户控件与页面之间区别的描述中正确的是()。
(选择一项)A.后缀名不同,前者为.ascx,后者为.aspxB.指令不同,前者使用@Page,后者使用@ControlC.前者可以直接访问,后者不可直接访问D.前者可以包含HTML标签,后者不能包含HTML标签5.在的Global.asax文件中,每次页面请求开始时都会被执行的事件是()。
(选择一项)A.Application_StartB.Session_EndC.Session_StartD.Application_BeginRequest6.在中,以下有关设置页面缓存所使用的Location属性描述正确的是()。
(选择一项)A.表示页面被缓存的时间,以秒为单位B.指定输出缓存项的位置C.该属性的值可以设置为“none”D.用来改变用户空间的输出缓存7.在中,Server对象的()方法用于对URL地址进行编码。
(选择一项)A.UrlEncodeB.UrlDecodeC.MapPathD.Excecute8. 在中,下面关于Datalist控件和Repeater控件描述错误的是()。
.net笔试考题及答案

1.`简述在C#语言中public、protected、private、internal、protected internal 5个修饰符的作用。
(5分)答案:a.private修饰private,私有修饰符,用于设置类或类成员的访问权限仅为所属类的内部。
需要访问私有类成员时,可通过get和set访问器读取或修改。
b.protected修饰符protected修饰符用于设置类或类成员的访问权限仅为所属类及子类的内部。
c.internal修饰符internal,C#默认的类访问修饰符,修饰类或类成员的访问权限为同一程序集内部。
d.public修饰符public,公共访问权限修饰符,修饰类或类成员的访问权限没有任何限制。
大多数情况下须谨慎使用public修饰符,因为滥用将影响类的封装性,并且带来安全隐患。
e.protected internal修饰符protected internal修饰符,修饰类或类成员的访问权限在子类中或同一程序集内。
如果要声明成员只能被同一程序集内的派生类(子类)访问,则应首先设置所属类为internal,成员设置为protected 。
2.共3小题,共9分。
a). 什么是装箱(boxing)和拆箱(unboxing)?请简述.NET对于装箱及拆箱的具体实现方式。
(5分)b). 在下面的例子中,哪些语句用到了装箱拆箱?你能对最后一句代码进行优化提高它的效率吗? (2分)public static void Main(){Int32 v = 5;Object o = v;v = 123;Console.WriteLine(v + ", " + (Int32)o);}c). 你知道.NET对拆箱有什么要求吗?下面的代码可以正确运行吗?如果不行该如何修改? (2分)static void Main(string[] args){int a = 1;object o = a;double b = (double)o;}答案:a.装箱和拆箱:任何值类型、引用类型可以和object(对象)类型之间进行转换。
.net笔试测试题(含参考答案)

.net笔试测试题(含参考答案).net笔试测试题(含参考答案)-惠普1. 填空:(1)面向对象的语言具有________性、_________性、________性。
(2)能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。
(3)列举中的五个主要对象_______________、_____________、_______________、_______________、_________________。
2. 不定项选择:(1) 以下叙述正确的是:A. 接口中可以有虚方法。
B. 一个类可以实现多个接口。
C. 接口不能被实例化。
D. 接口中可以包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReader3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
4. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。
)5 .列举 页面之间传递值的几种方式。
6. 写出程序的输出结果class Class1 {private string str = "Class1.str";private int i = 0;static void StringConvert(string str) {str = "string being converted.";}static void StringConvert(Class1 c) {c.str = "string being converted.";static void Add(int i) {i++;}static void AddWithRef(ref int i) { i++;}static void Main() {int i1 = 10;int i2 = 20;string str = "str";Class1 c = new Class1();Add(i1);AddWithRef(ref i2);Add(c.i);StringConvert(str); StringConvert(c);Console.WriteLine(i1); Console.WriteLine(i2); Console.WriteLine(c.i); Console.WriteLine(str); Console.WriteLine(c.str);}}7.写出程序的输出结果public abstract class A{public A(){Console.WriteLine('A');public virtual void Fun() {Console.WriteLine("A.Fun()"); }}public class B: A{public B(){Console.WriteLine('B');}public new void Fun(){Console.WriteLine("B.Fun()"); }public static void Main() {A a = new B();a.Fun();}}8. 写出程序的输出结果:public class A{public virtual void Fun1(int i) {Console.WriteLine(i);}public void Fun2(A a)a.Fun1(1);Fun1(5);}}public class B : A{public override void Fun1(int i){base.Fun1 (i + 1);}public static void Main(){B b = new B();A a = new A();a.Fun2(b);b.Fun2(a);}}9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。
.Net招聘笔试题

.Net软件工程师招聘笔试题一、选择题(30分)1、()是面向对象程序设计语言中的一种机制,此种机制实现了方法的定义与具体的对象无关,而对方法的调用则可关联于具体的对象。
A.继承B.封装C.多态D.动态绑定2.下面哪个修饰符修饰的方法只能被本类中的其他方法使用()A.protected B.static C.private D.public3、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
A.3 B.3. 5 C.4 D.54、在MVC(模型/视图/控制器)模式中,视图部分描述的是()。
A.将应用问题域中包含的抽象领域知识呈现给用户的方式B.应用问题域中所包含的抽象类C.用户界面对用户输入的响应方式D.应用问题域中包含的抽象领域知识5、以下关于触发器的说法不正确的是()A.触发器的定义包括触发器名称、触发器所依附的对象、何时执行以及如何执行B.触发器主要是用于作完整保护和体现数据库的主动功能C.可激发触发器的操作包括INSERT、DELETE、UPDA TED.触发器仅能在事件INSERT、DELETE和UPDA TE之前触发,而不能在其后被触发。
6、如果一个程序段中有多个catch,则程序会按如下哪种情况执行?()A.找到合适的例外类型后继续执行后面的catchB.找到每个符合条件的catch都执行一次C.找到合适的例外类型后就不再执行后面的catchD.对每个catch都执行一次7.给出下面代码:()public class Person{static int[] arr = new int[10];public static void main(String[] a){Console.Write (arr[1]);}}那个语句是正确的?A.编译时将产生错误;B.编译时正确,运行时将产生错误;C.输出零;D.输出空。
8.给出一段程序,试判断哪个是正确的结果()public class myprogram{public static void main (String[] args){try{Console.Write (“Hello world ”); }finally{Console.Write (“Finally executing”);}}}A.无法编译,因为没有指定异常B.无法编译,因为没有catch子句C.Hello worldD.Hello world Finally executing9.指出下列程序运行的结果()public class Example{String str=new String("good");char[] ch={'a','b','c'};public static void Main(String[] args){Example ex=new Example ();ex.change(ex.str,ex.ch);Console.Write (ex.str+" and ");Console.Write (ex.ch);}public void change(String str,char[] ch){str="test ok";ch[0]= 'g';}}A.good and abcB.good and gbcC.test ok and abcD.test ok and gbc10、给出下面代码:()1) public class Parent2) {3) private String name;4) public Parent() { }5) }6)7) public class Child : Parent8) {9) private String department;10) public Child() { }11) public String getValue() { return name; }12) public static void Main(String[] arg)13) {14) Parent p = new Parent();15) }16) }那些行将引起错误?A.第4行B.第9行C.第11行D.第14行二、简答题(30分)1、C#语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?(10分)2、请画出设计模式中单例模式、观察者模式的类图,并且说明这两种模式的使用场景(10分)3、请列出至少三种.NET中字符串连接的方式。
.NET开发工程师招聘笔试题及解答2024年

2024年招聘.NET开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个技术不是.NET平台的一部分?A、B、CC、JavaD、2、在.NET中,以下哪个类用于处理文件输入输出?A、FileStreamB、StreamReaderC、StreamWriterD、File3、以下哪个不是.NET平台的核心框架之一?A. .NET FrameworkB. .NET CoreC. .NET 5D. Java Platform4、在C中,以下哪个属性是用于指定一个字符串变量的值是否可以改变?A. readonlyB. constC. sealedD. volatile5、在.NET框架中,以下哪个类是用来处理文件输入/输出的?A. FileInfoB. FileStreamC. DirectoryInfoD. StreamWriter6、在C中,以下哪个关键字用于声明一个异步方法?A. asyncB. awaitC. async/awaitD. task7、以下哪种编程语言是.NET平台的宿主语言?A. JavaB. CC. PythonD. Ruby8、在C中,以下哪个属性可以用来检查一个字符串是否为空或者仅包含空白字符?A. IsEmptyB. IsNullC. IsNullOrWhiteSpaceD. IsBlank9、在.NET框架中,以下哪个组件负责处理和响应应用程序的UI事件?A. B. C. Windows FormsD. WPF 10、在C中,以下哪种数据类型表示32位的带符号整数?A. byteB. shortC. intD. long二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术或框架是.NET开发工程师在开发过程中可能用到的?()A、 CoreB、Entity Framework CoreC、WPFD、DockerE、Vue.js2、以下关于.NET Core的特点,哪些是正确的?()A、跨平台B、高性能C、支持多种编程语言D、完全开源E、只适用于Web应用程序开发3、以下哪些技术或框架是.NET开发工程师在项目中可能会使用到的?(多选)A. CoreB. Entity Framework CoreC. Windows Communication Foundation (WCF)D. MVC (Model-View-Controller)E. jQuery4、以下关于 .NET 核心概念的描述,哪些是正确的?(多选)A. .NET Core 是一个开源、跨平台的框架。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.`简述在C#语言中public、protected、private、internal、protected internal 5个修饰符的作用。
(5分)答案:a.private修饰private,私有修饰符,用于设置类或类成员的访问权限仅为所属类的内部。
需要访问私有类成员时,可通过get和set访问器读取或修改。
b.protected修饰符protected修饰符用于设置类或类成员的访问权限仅为所属类及子类的内部。
c.internal修饰符internal,C#默认的类访问修饰符,修饰类或类成员的访问权限为同一程序集内部。
d.public修饰符public,公共访问权限修饰符,修饰类或类成员的访问权限没有任何限制。
大多数情况下须谨慎使用public修饰符,因为滥用将影响类的封装性,并且带来安全隐患。
e.protected internal修饰符protected internal修饰符,修饰类或类成员的访问权限在子类中或同一程序集内。
如果要声明成员只能被同一程序集内的派生类(子类)访问,则应首先设置所属类为internal,成员设置为protected 。
2.共3小题,共9分。
a). 什么是装箱(boxing)和拆箱(unboxing)?请简述.NET对于装箱及拆箱的具体实现方式。
(5分)b). 在下面的例子中,哪些语句用到了装箱拆箱?你能对最后一句代码进行优化提高它的效率吗? (2分)public static void Main(){Int32 v = 5;Object o = v;v = 123;Console.WriteLine(v + ", " + (Int32)o);}c). 你知道.NET对拆箱有什么要求吗?下面的代码可以正确运行吗?如果不行该如何修改? (2分)static void Main(string[] args){int a = 1;object o = a;double b = (double)o;}答案:a.装箱和拆箱:任何值类型、引用类型可以和object(对象)类型之间进行转换。
装箱转换是指将一个值类型隐式或显式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。
把一个值类型的值装箱,就是创建一个object实例并将这个值复制给这个object,装箱后的object对象中的数据位于堆中,堆中的地址在栈中。
被装箱的类型的值是作为一个拷贝赋给对象的b.用到了3次装箱1次拆箱,其中最后一句代码有2次装箱1次拆箱。
优化后如下:public static void Main(){Int32 v = 5;Object o = v;v = 123;Console.WriteLine(v + ", " + o);}c.拆箱时只能转化成装箱时的值,否则会报类型转化错误的异常,正确写法如下:static void Main(string[] args){int a = 1;object o = a;double b = (double)(int)o;}3.共4小题,共14分。
a). 请从构造函数、继承方式、内存管理、参数传递等角度列举结构体(struct)和类(class)的区别。
(8分)b). 如果你要创建一个如下的点对象, 你倾向于用结构体还是类, 为什么?(2分)Point{double X;double Y;}c).如果是下面的点对象, 你倾向于用结构体还是类,为什么?(2分)Point{double X;double Y;double Z;int Color;}d,如果是下面的对象呢,你会选择用结构体还是类,为什么?(2分)Point{double X;double Y;MoveTo(double x, double y);}答案:在构造函数方面:结构不能声明默认构造函数(没有参数的构造函数),但是类可以。
类的构造函数可以只给部分成员变量赋值,但是结构体的构造函数必须给所有变量赋值。
构造类对象时.NET需要1,在托管堆分配内存;2,初始化一些额外的变量(方法表指针和同步块索引,即Method Table Pointer & SyncBlockIndex);3,调用构造函数。
新建一个结构体只是在栈中非配内存并初始化其成员值。
继承方式方面:结构不能继承或被继承,类可以。
内存管理方面:结构是值类型,类是引用类型。
因此相应的,类对象的内存分配在堆上,受GC管理,结构体对象的内存分配在栈上,不受GC管理。
参数传递方面:因为结构是值类型,类是引用类型,因此一种是按照值拷贝方式传递,一种是引用方式传递。
其他方面:略b. 结构体, < 16 bytesc. 类, > 16 bytesd. 类, not immutable, MoveTo() method will change the point.关于学生自己设计的是类还是结构体,理由可以参考如下:∙堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些∙结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有1000 个点对象的数组,则将为引用每个对象分配附加的内存。
在此情况下,结构的成本较低。
∙在表现抽象和多级别的对象层次时,类是最好的选择∙大多数情况下该类型只是一些数据时,结构时最佳的选择∙结构体的数据量要小(<16 字节), 以维持拷贝时的高效∙结构体应该是不可变的(immutable)4.共3小题,共6分。
a). String是引用类型还是值类型?(1分)b).下面代码执行结果是什么?为什么会有这样的结果。
(2分)c).字符串操作是一个非常常见但又代价较大的操作,你知道.NET为字符串操作做了哪些优化吗?比如说,你知道string.Intern()这个方法的含义吗?(3分)static void Main(string[] args){string b = "world";f(b);Console.WriteLine(b);}static void f(string a){a = "hello";}答案:a,string属于引用类型,b,执行结果为”world”, 这是因为调用函数f时,b的地址以值拷贝的方式复制给a, a在函数内被指向了新的地址,但其原地址上的内容并没有被改变,因此函数结束之后a的改变不会影响b.C, .NET中所有非动态生成的字符串都被预编译在元数据中,不可改变(immutable),这一点与值类型很相似。
如果两个字符串变量有同样的值,那么它们的地址一定相等。
这样很方便进行字符串的比较操作。
Intern方法就是将动态生成的字符串进行留用,这样下次使用的时候就直接返回留用后的字符串的地址。
采取了Dispose()模式来确保类中包含的资源能够被有效释放.请在下面的代码中增加Dispose()模式,确保资源bitmap可以被有效释放。
(8分)public class MyClass{private Bitmap bitmap;public MyClass(): this(null){ }public MyClass(Bitmap bitmap){this.bitmap = bitmap;}答案:public class MyClass : IDisposable{private Bitmap bitmap;public MyClass(): this(null){ }public MyClass(Bitmap bitmap){this.bitmap = bitmap;}public void Dispose() (3分){this.Dispose(true);GC.SuppressFinalize(this);}private void Dispose(bool disposing) (2分){if (bitmap != null){bitmap.Dispose();}}~MyClass() (3分){Dispose(false);}}6.什么是Web Control的生命周期?请至少按顺序举出3个步骤,并说明他们的作用。
(6分)PreInit: 检查IsPostBack属性。
创建或重建动态添加的控件。
Init: 读取或者初始化控件属性InitComplete: 在初始化完成后触发.LoadViewState: 恢复页面的view State.PreLoaded: 在页面加载之前触发.Load: 在此设置控件属性并建立数据库连接LoadComplete: 在页面加载之后触发SaveViewState: 保存当前控件的状态到ViewStateCollection中PreRender, 使用这个方法在渲染控件前对页面控件内容进行最后的修改。
Render: 将当前控件渲染为浏览器可认的HTML.Unload: 使用这个事件进行控件的资源释放。
如释放数据库连接等7.简述中Session, Application, ViewState的作用和区别,并举例说明何时使用。
(6分)答案:Session:当用户在web应用程序中浏览页面时,为当前用户存储变量。
比如一个Web程序需要在页面间共享一个变量。
如登陆后需要保存用户状态,并在其他页面共享此状态。
Application: 可以在整个web应用程序中跨用户的共享信息。
比如一个投票系统可以用Application来记录用户的投票之和。
ViewState: 一个服务端空间的ViewState是指其包含的所有属性。
比如一个ASPX页面的属性或变量等。
8.2小题,6分。
a). 什么是抽象方法,什么是虚方法,两者有什么区别?(4分)b). 现有基类Polygon, 其下有两个子类Triangle和Rectangle。
基类中包含Polygon中所有顶点的集合以及获取周长的方法GetPerimeter()。
如果是你来设计这个类,GetPerimeter()你倾向使用抽象方法还是虚方法,为什么?(2分)答案:虚方法和抽象方法都可以供派生类重写。
∙虚方法必须有实现部分,并为派生类提供了覆盖该方法的选项抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。
∙抽象方法只能在抽象类中声明,抽象方法必须在派生类中重写虚方法不是也不必要重写。
其实如果类包含抽象方法,那么该类也是抽象的,也必须声明为抽象的。
∙抽象方法必须在派生类中重写,这一点跟接口类似,虚方法不必。
抽象方法不能声明方法实体而虚方法可以包含抽象方法的类不能实例化,而包含虚方法的类可以实例化应该用虚方法,提供一个默认的实现,可以通过所有点来计算出它周长。