C#基础面试题Word文档下载推荐.docx

上传人:b****2 文档编号:14927667 上传时间:2022-10-26 格式:DOCX 页数:8 大小:130.21KB
下载 相关 举报
C#基础面试题Word文档下载推荐.docx_第1页
第1页 / 共8页
C#基础面试题Word文档下载推荐.docx_第2页
第2页 / 共8页
C#基础面试题Word文档下载推荐.docx_第3页
第3页 / 共8页
C#基础面试题Word文档下载推荐.docx_第4页
第4页 / 共8页
C#基础面试题Word文档下载推荐.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C#基础面试题Word文档下载推荐.docx

《C#基础面试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#基础面试题Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。

C#基础面试题Word文档下载推荐.docx

反序列化则是从特定存储介质中的数据重新构建对象的过程

7.类成员有几种可访问形式?

简述可访问形式修饰符的访问权限。

可访问形式有private、protected、public、internal;

public(公共的)完全公开,访问不受限制。

protected(保护的)访问仅限于包含类或

C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。

8.C#中所有对象共同的基类是什么?

System.Object.

9.在方法定义中,virtual有什么含意?

被virtual修饰的方法可以被子类覆写。

10.能够将非静态的方法覆写成静态方法么?

不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。

答案并没有大错,只是静态方法根本无override概念,属于引起困惑的问题。

11.可以覆写私有的虚方法么?

不可以,甚至子类中无法访问父类中的私有方法。

12.能够阻止某一个类被其他类继承么?

可以,使用关键字sealed。

还可以将所有构造函数的访问级别都设为Private或子类无法访问到的其他级别(Assembly外的iternal),也有同样的效果。

13.能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?

可以,标记这个类为public,并标记这个方法为sealed。

14.何时必须声明一个类为抽象类?

当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。

15.接口(interface)是什么?

只含有抽象方法(publicabstractmethod)的类。

这些方法必须在子类中被实现。

16.为什么不能指定接口中方法的修饰符?

接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。

他们默认为公有方法。

17.那么如果这些接口中有重复的方法名称呢?

这种情况中你可以决定如何实现。

当然需要特别得小心。

但是在编译环节是没有问题的。

18.如何区别重载方法?

不同的参数类型,不同的参数个数,不同的参数顺序。

19.const和readonly有什么区别?

const关键字用来声明编译时常量,readonly用来声明运行时常量。

还有一些区别,当应试者提到时你不能说是错的:

作字段时const隐含静态,const可以是局部的,readonly可以在构造函数中初始化等。

20.System.String和System.StringBuilder有什么区别?

System.String是不可变的字符串。

System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。

21.请详述在.net中类(class)与结构(struct)的异同:

Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

22.接口和抽象类具有什么区别?

含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。

含有abstract方法的类必须定义为abstractclass,abstractclass类中的方法不必是抽象的。

abstractclass类中定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或抽象静态方法。

如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。

接口中的方法定义默认为publicabstract类型

下面比较一下两者的语法区别:

1.抽象类可以有构造方法,接口中不能有构造方法。

2.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

3.抽象类中抽象方法可以指定为public,接口中抽象方法不能指定任何修饰符,默认就是public

4.一个类可以实现多个接口,但只能继承一个抽象类。

23.base关键字的作用是什么?

子类继承父类的过程中,可能需要在子类中调用父类中的成员,如属性、方法或者构造方法。

这个时候,可以使用base关键字来完成。

base的作用是用于引用父类的成员,如属性、方法或者是构造方法。

24.什么是抽象类?

抽象类不能创建实例,它只能作为父类被继承。

抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。

从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。

25.接口和抽象类两者在应用上的区别:

接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。

而抽象类在代码实现方面发挥作用,可以实现代码的重用

26.面向对象的特征有哪些方面?

面向对象的编程语言有封装、继承、抽象、多态等4个主要的特征。

封装:

封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。

抽象:

抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类

继承:

子类继承父类成员,实现代码复用,提高了软件的可重用性和可扩展性。

多态:

不同子类对同一个消息作出不同的反映,提高软件灵活性

27.在C#中,stringstr=nullstringstr=string.Empty与stringstr=“”请尽量使用文字或图象说明其中的区别。

string.Empty:

不分配存储空间。

"

分配一个长度为空的存储空间,"

和String.Empty,这两个都是表示空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的。

string.Empty就相当于"

,一般用于字符串的初始化。

比如:

stringa=string.Empty;

在进行为空的比较时,string.Empty和"

是一样的。

即如果stringtest1="

;

 则可以使用if(test1=="

)或者if(test1==string.Empty)进行判断。

上面两句是一样的效果。

Null:

null关键字是表示不引用任何对象的空引用。

null是引用类型变量的默认值。

那么也只有引用型的变量可以为NULL,如果inti=null;

 的话,是不可以的,因为Int是值类型的。

28.用sealed修饰的类有什么特点

sealed(密封的)修饰符用于防止从所修饰的类派生出其它类。

如果一个密封类被指定为其他类的基类,则会发生编译时错误。

密封类不能同时为抽象类。

sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。

29.Params是什么含义?

Params是C#中的关键字,采用此关键字可以指定参数数目为可变;

在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。

30.CLR与IL分别是什么含义?

CLR:

公共语言运行时,类似于Java中的JVM,Java虚拟机;

在.Net环境下,各种编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与操作系统进行通信,而编程语言如C#.NET将尽量避免直接与操作系统直接通信,加强了程序代码的执行安全性;

可以这样看:

CLR就是具体的编程语言如:

C#.NET与操作系统之间的翻译,同时它为具体的编程语言提供了许多资源:

IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;

所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。

在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行

31..堆和栈的区别?

栈:

由编译器自动分配、释放。

值类型通常在栈上。

堆:

一般由程序员分配释放。

引用类型分配在堆上。

32..如何处理几十万条并发数据?

用存储过程或事务。

取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取

33.成员变量和成员方法前加static的作用?

它们被称为静态变量和静态方法,又称为类成员变量和类成员方法。

分别用来反映类的状态。

34.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?

using指令和语句new创建实例new隐藏基类中方法。

using引入名称空间或者使用非托管资源

Using引入一个名子空间,或在使用了一个对像后自动调用其IDespose

New实例化一个对像,或修饰一个方法,表此方法完全重写此方法.

35.什么是反射?

动态获取程序集信息

36.c#中的三元运算符是?

37.什么是虚方法?

什么是抽像方法?

虚方法:

要有方法体,哪怕是一个分号,可由子类继承并重写的方法。

抽像方法:

不允许有方法体,规定其非抽象子类必须实现的方法,必须被重写。

38.publicstaticconstintA=1;

这段代码有错误么?

是什么?

const不能用static修饰

39.floatf=-123.567F;

inti=(int)f;

i的值现在是_____?

答:

-123

40.用Singleton如何写设计模式.答:

static属性里面new,构造函数private

41.C#中property(属性)与attribute(特性)的区别,他们各有什么用处,这种机制的好处在哪里?

属性:

用于存取类的字段。

特性:

用来标识类,方法等的附加性质。

attribute:

自定义属性的基类;

property:

类中的属性

42.谈谈类和结构的区别?

最大区别一个是引用类型,一个是值类型

43.谈谈你对MVC模式的理解?

MVC模式一般为3层:

数据访问层,业务逻辑层,表示层。

数据访问层:

对数据库进行增删查改。

业务逻辑层:

一般分两大职责:

业务处理,数据传递

表示层:

与用户交互例如用户添加表单。

优点:

分工明确,条理清晰,易于调试,而且具有可扩展性。

缺点:

增加成本。

44.什么叫应用程序域?

应用程序域可以理解为一种轻量级进程。

起到安全的作用。

占用资源小

45.CTS、CLS、CLR分别作何解释?

CTS:

通用语言系统。

CLS:

通用语言规范。

CLR:

公共语言运行库

46.DataReader和DataSet的异同

DataReader和DataSet最大的区别在于,Data

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1