c# 网上搜集面试题目大全

来源:互联网 发布:tcp 51 udp 端口 编辑:程序博客网 时间:2024/05/15 06:18

本文的题目都是从网上收集来的,鄙人也研究过,新手跳槽看看非常有帮助


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.子类对父类中虚方法的处理有重写(override)和覆盖(new),请说明它们的区别?

有父类ParentClass和子类ChildClass、以及父类的虚方法VirtualMethod。有如下程序段:
ParentClass pc = new ChildClass();pc.VirtualMethod(...);
如果子类是重写(override)父类的VirtualMethod,则上面的第二行语句将调用子类的该方法
如果子类是覆盖(new)父类的VirtualMethod,则上面的第二行语句将调用父类的该方法

7.填空:

(1)面向对象的语言具有 继承性多态性封装性
(2)列举ADO.Net中的五个主要对象

Connection,Command,DataReader,DataAdapter,DataSet

connection 连接对象 
command 命令对象,指示要执行的命令和存储过程! 
datareader是一个向前的只读的数据流。 
dataadapter是功能强大的适陪器,支持增删改查的功能 
dataset是一个数据级对象,相当与内存中的一张表或多张表

8.简述 private、 protected、 public、 internal 修饰符的访问权限。

Private:关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的, 同一体中的嵌套类型也可以访问那些私有成员

Protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。有关 protected 与其他访问修饰符的比较,请参见可访问性级别,只有在通过派生类类型发生访问时,基类的受保护成员在派生类中才是可访问的

Internal关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的

Public具有最高级别的访问权限,对访问成员没有限制。

9.列举ASP.NET 页面之间传递值的几种方式。

QueryString,Session和Server.Transfer

10..Net中读写数据库需要用到哪些类?他们的作用

sqlconnection 连接数据库,sqlcommand 执行T-SQL语句,或存储过程

11.ASP.net的身份验证方式有哪些?分别是什么原理?

asp.net提供了3种认证方式: windows身份验证, Forms验证和Passport验证.windows, 身份验证: IIS根据应用程序的设置执行身份验证.要使用这种验证方式,在IIS中必须禁用匿名访问.Forms验证:用Cookie来保存用户凭证,并将未经身份验证的用户重定向到自定义的登录页.Passport验证:通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务.

12.常用的调用webservice方法有哪些?三种

利用webservice.htc调用WebService方法

在Internet上调用WebService方法

13.面向对象的思想主要包括什么?

 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。 
继承:子类拥有父类的所有数据和操作。

多态:一个程序中同名的不同方法共存的情况。有两种形式的多态– 重载与重写。

14.值类型和引用类型的区别?

值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。

引用类型(reference type):string 和 class统称为引用类型。当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。

15.ADO.net中常用的对象有哪些?分别描述一下。

Connection 数据库连接对象Command 数据库命令DataReader 数据读取器DataSet 数据集

16.如何理解委托?

委托是对函数的封装,可以当作给方法的特征指定一个名称。而事件则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知过程。

委托通过delegate来声明。而事件是说在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。事件对象用event声明。

委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。

17.C#中的接口和类有什么异同。

异:不能直接实例化接口。接口不包含方法的实现。接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。

同:接口、类和结构可从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。接口可以包含事件、索引器、方法和属性。一个类可以实现多个接口。

18.进程和线程分别怎么理解?

 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

19.什么是WEB控件?使用WEB控件有那些优势?

运行在服务器端的控件,只要将HTML控件加上runat=server.

20.请解释web.config文件中的重要节点

Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 1、<authentication> 节作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。<authentication> 元素必需与<authorization> 节配合使用。示例:以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。<authentication mode="Forms" > <forms loginUrl="logon.aspx" name=".FormsAuthCookie"/></authentication> 其中元素loginUrl表示登陆网页的名称,name表示Cookie名称2、<authorization> 节作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与<authentication> 节配合使用。3、<compilation>节作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为True(Web.config文件中有详细说明,此处省略示例)4、<customErrors>作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。5、<httpRuntime>节作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。 6、 <pages>作用:标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。<pages>可以在计算机、站点、应用程序和子目录级别声明。7、<sessionState>  作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。 8、<trace>  作用:配置 ASP.NET 跟踪服务,主要用来程序测试判断哪里出错。


21.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决

很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断


22.请解释一个WEB页面中代码执行次序。

Init,Load,PreRender事件执行顺序:

1)控件的Init事件

2)控件所在页面的Init事件

3)控件所在页面的Load事件

4)控件的Load事件

5)控件所在页面的PreRender事件

6)控件的PreRender事件


23.请解释什么是上下文对象,在什么情况下要使用上下文对象

上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对象

24.请解释接口的显式实现有什么意义?

接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。实现接口的任何类都必须提供接口中所声明的抽象成员的定义。接口可以要求任何实现类必须实现一个或多个其他接口。

1、因为显式接口成员执行体不能通过类的实例进行访问,这就可以从公有接口中把接口的实现部分单独分离开。如果一个类只在内部使用该接口,而类的使用者不会直接使用到该接口,这种显式接口成员执行体就可以起到作用。

2、显式接口成员执行体避免了接口成员之间因为同名而发生混淆。如果一个类希望对名称和返回类型相同的接口成员采用不同的实现方式,这就必须要使用到显式接口成员执行体。如果没有显式接口成员执行体,那么对于名称和返回类型不同的接口成员,类也无法进行实现。

25.您在什么情况下会用到虚方法?它与接口有什么不同?

当在继承类中想重写某一方法时会用到虚方法;虚方法是类的成员函数,接口相当于抽象类

26.向服务器发送请求有几种方式?

Post,Get.


27.DataReader与Dataset有什么区别?

DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作

28.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

使用Request["string"].Request.QueryString["flag"]

29.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

一般为3层 , 数据访问层,业务层,表示层。数据访问层对数据库进行增删查改。业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。表示层为了与用户交互例如用户添加表单。优点:分工明确,条理清晰,易于调试,而且具有可扩展性。缺点:增加成本。

30.通过超链接怎样传递中文参数?

传递时用HttpUtility.UrlEncodeUnicode("中文参数"),获取时直接用Request.QueryString["参数"]就行了<%@ import namespace="System.Web.Util"%>

31.进程和线程的区别

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

32.成员变量和成员函数前加static的作用

它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。

33.谈谈final, finally, finalize的区别。

final 修饰符用于指定类不能扩展或者方法或属性不能重写。它将防止其他类通过重写重要的函数来更改该类的行为。带有 final 修饰符的方法可以由派生类中的方法来隐藏或重载。finally 块用于清除在 try 块中分配的任何资源。控制总是传递给 finally 块,与 try 块的存在方式无关。finalize允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。


34.&和&&的区别。

&&为逻辑与,输出结果为布尔(真假)型; &为按位与,输出结果为数值型。


35.数组有没有length()这个方法 String有没有length()这个方法:

在c#数组和string只有length属性,没有方法


36.是否可以继承String类

   否,无法继承自密封类


37.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后

    会,在return后.


38.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上

都可以


39.c#中的三元运算符是

a?b:c


40.public static const int A=1;这段代码有错误么?是什么?

const不能用static修饰


41.在Asp.net中所有的自定义用户控件都必须继承自

System.Web.UI.UserControl


42.在.Net中所有可序列化的类都被标记为_____

[Serializable]


43.在c#中using和new这两个关键字有什么意义?

new 关键词可当做运算子、修饰词或条件约束 (Constraint) 使用。

用来建立对象并叫用 (Invoke) 建构函式

Class1 o = new Class1();

using 关键词有两种主要的用法:

做为指示词,此时它是用来建立命名空间的别名,或是用来汇入在其它命名空间中定义的型别。请参阅 using 指示词。

做为陈述式,此时它是用来定义一个范围,对象会在此范围结尾处进行处置 (Dispose)。请参阅 using 陈述式。


















原创粉丝点击