.NET面试题集锦①(Part一)

平、前说有

文中的问题以及答案多收集整理自网络,不保险100%准儿,还往斟酌采纳。

1.面向对象的思辨主要包括什么?

报经:任何事物都可解为对象,其要特征:
继承。封装。多态。特点:代码好保护,安全,隐藏信息 

2.啊是ASP.net中的用户控件?

报经:扩展名吧*.ascx,跟*.aspx在结构上相似,是凭借页面被加载的效能块,只是用户控件不能够独立作为页面运行,

   
 必须置于至*.aspx页面或其他用户控件被应用。 

3.啊吃应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?

CTS、CLS和CLR分别作何解释?

报:应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔断边界。应用程序域通常由运行库宿主创建,

运转库宿主负责在运转应用程序之前带集体语言运行库。应用程序域提供了一个又安全、用途还宽泛的处理单元,

集体语言运行库可采取该单元提供应用程序之间的割裂。托管代码为下基于公共语言运行库的语言编译器开发之

代码称为托管代码;托管代码有许多独到之处,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署

支撑、简化的零部件交互模型、调试和分析服务等。装箱和拆箱使值类型能够让视为对象。对值类型装箱将将该值类型

打包到 Object
引用类型的一个实例中。这使值类型可以储存于垃圾回收堆中。拆箱将自目标被提值类型。

重载:每个类别成员还起一个唯一的签约。方法签名由方名称及一个参数列表(方法的参数的相继及种类)组成。

而签约不同,就好以相同种植类型内定义有同样名称的有余主意。当定义两栽要多具备相同名称的不二法门时,就称作重载。

CTS通用型系统 (common
type
system):一栽确定公共语言运行库如何定义、使用与管制类的规范。

CLR公共语言运行库:.NET
Framework
供了一个号称公共语言运行库的周转时环境,它运行代码并提供使出进程又自在的劳务。

CLS公共语言专业:要同其余对象了交互,而无这些目标是为何种语言实现之,对象要就向调用方公开那些它们要同之相用底

享有语言的通用功能。为夫概念了公语言专业
(CLS),它是累累应用程序所要的一律学中心语言功能。

强类型:C#
是强类型语言;因此每个变量和目标都不能不备声明类型。 

4.列举一下您所了解的XML技术及其应用

报经:保存配置,站和站内的交流,WEB
SERVICE。以及跟数据库的数码交互等地方还如因此它. 

5.值类型和援类型的别?

报:基于值类型的变量直接包含值。将一个值类型变量赋给另外一个值类型变量时,将复制包含的价值。

就和援类型变量的赋值不同,引用类型变量的赋值只复制对目标的援,而休复制对象自我。

有的值类型均隐式派生自
System.ValueType。与援类型不同,从值类型不容许派生出新的项目。

而是和援类型相同之是,结构为足以实现接口。与援类型不同,值类型不可能含有
null 值。然而,

然而空类型功能允许将 null
赋给值类型。每种值类型均发生一个隐式的默认构造函数来初始化该项目的默认值。

值类型主要由片好像组成:结构、枚举结构分为以下几看似:Numeric(数值)类型、整型、浮点型、decimal、

bool、用户定义之构造。引用类型的变量又称作对象,可存储对实际数目的援。声明引用类型的根本字:

class、interface、delegate。内置引用类型:
object、strin 

6.ADO.net中常用之目标来安?分别讲述一下。

答:

Connection
打开数据库连接

Command
执行数据库命令

DataAdapter
连接数据,执行数据库命令,填充DataSet

DataSet
数据在内存中的缓存,数据结构

DataReader
只读上的读取数据库 

7.什么样掌握委托?

答:

一定给函数指针,定义了托就得在匪调用原方法名称的图景下调用特别方法.

寄有以下特征:

委托类似于 C++
函数指针,但它是种类安全之。

寄托允许以计作为参数进行传递。

寄可用以定义回调方法。

委托可以链接以协同;例如,可以对一个风波调用多独办法。

术无需要以及信托签名精确匹配。有关重新多信息,请参见协变和逆变。

C# 2.0
版引入了匿名方式的定义,此类措施允许将代码块当参数传递,以取代单独定义的计。 

8.C#蒙之接口及接近有啊异同?

答:异:不克直接实例化接口。接口不分包方法的落实。接口、类以及结构可由多单接口继承。但是C#

只有支持单继承:类只能打一个基类继承实现。类定义可每当不同的源文件之间展开拆分。

同:接口、类及布局可由多个接口继承。接口类似于肤浅基类:继承接口的另外不抽象类型且须贯彻接口的装有成员。

接口可以蕴涵事件、索引器、方法和性。一个好像可兑现多只接口。
 

9.UDP总是和TCP连接的异同?

报经:前者只管传,不管多少及不顶,无须建立连接.后者保证传输的数码标准,须要连结. 

10.ASP.NET的身份验证方式发出什么?分别是啊规律?

报经:Windows
身份验证提供次:提供有关如何以 Windows 身份验证与 Microsoft Internet
信息服务

(IIS)
身份验证结合使用来确保 ASP.NET 应用程序安全之音讯。Forms
身份验证提供程序:提供关于如何

采用你自己的代码创建应用程序特定的记名窗体并实施身份验证的音。使用
Forms 身份验证的一致种植简便方

依傍是动 ASP.NET
成员身价和 ASP.NET
登录控件,它们一起供了同一种就需要少量还是任需代码就好搜集

、验证和治本用户凭据的计。Passport
身份验证提供程序:提供关于由 Microsoft 提供的集中身份验证服

业的信,该服务也成员站点提供纯登录以及骨干配置 

11.过程同线程分别怎么懂得?

报经:进程以及线程都是由于操作系统所体会的程序运行的主导单元,系统利用该中心单元实现系统针对用的并发性。

过程以及线程的区别在:

大概,一个序至少有一个进程,一个经过至少发生一个线程.线程的划分标准小于进程,使得多线程程序的并发性高。

另外,进程在履行过程遭到兼有独立的内存单元,而多只线程共享内存,从而极大地提高了程序的运转效率。

线程在履过程被及经过要生分之。每个独立的线程有一个程序运行的入口、顺序执行序列以及程序的语。

但线程不可知独立执行,必须遵循有应用程序中,由应用程序提供多只线程执行控制。

自从逻辑角度来拘禁,多线程的意义在于一个应用程序中,有差不多只实施有好同时实施。但操作系统并没拿多独线

程看举行多单独立的以,来落实进程的调度和管制以及资源分配。这虽是经过以及线程的关键区别。

进程是具自然独立功能的次序关于某个数集合上之同不成运行活动,进程是系进行资源分配与调度的一个独门单位.

线程是经过的一个实体,是CPU调度和分担的基本单位,它是比较进程再粗的会独立运行的为主单位.线程自己多不抱有

系统资源,只持有一点每当运作面临不可或缺的资源(如程序计数器,一组寄存器和货栈),但是它不过与同属一个过程的别的线程共

享受进程所具备的满贯资源.一个线程可以创建和取消外一个线程;同一个进程中之差不多只线程之间可以并发执行. 

12.什么是code-Behind技术?

报经:代码分离,这是单神之物,像ASP这样混成一积好不爽.或者可以知道成HTML代码写在前台,C#代码写于后台.

理所当然前台也来脚本,类的调用等,其实写于并呢是得的. 

13.解释一下UDDI、WSDL的义及其作用。

答:

UDDI:统一描述、发现同购并协议(UDDI,
Universal Description, Discovery and
Integration)是一致模拟基于Web的、

分布式的、为Web服务提供的信息登记中心的落实标准规范,同时为带有一组要企业会用自家提供的Web服务登记为要

得别的企业会察觉的走访协议的兑现规范。UDDI
提供了千篇一律组根据专业的正式用于描述和意识服务,还提供了相同组根据

因特网的贯彻。WSDL:WSDL描述Web服务的集体接口。这是一个冲XML的关于什么与Web服务通讯和行使的劳务描述. 

14.哟是SOAP,有哪应用?

报经:SOAP(Simple Object
Access Protocol
)简单对象看协议是于分流或分布式的环境面临交换信息并推行长途过程调用的协议,

是一个基于XML的商。使用SOAP,不用考虑其他特定的传输协议(最常用的要HTTP协议),可以允许其他项目的靶子要代码,

以另外平台上,以其他直接语言相互通信。SOAP
是千篇一律种植轻量级协议,用于在分散型、分布式环境面临交换结构化信息。 SOAP
利用

XML
技术定义一种而扩大的音讯处理框架,它提供了同样栽而经过多底部协议进行置换的信结构。这种框架的设计思想是若独立

吃任何一样种特定的编程模型和其它特定实现之语义。SOAP
定义了一如既往种植艺术以便将 XML 消息从 A 点传送至 B 点。为夫,它提供了

如出一辙栽基于 XML
且所有以下特征的信息处理框架:1) 可扩大,2)
可由此强底层网络协议使用,3) 独立于编程模型。 

15.如何理解.net中的污物回收机制。

报经:.NET Framework
的污染源回收器管理应用程序的内存分配与放。每次你使用 new
运算符创建对象时,运行库都

打托管堆为该目标分配内存。只要托管堆着生地址空间可用,运行库就会延续为新目标分配空间。但是,内存不是极好的。

说到底,垃圾回收器必须实施回收以自由部分内存。垃圾回收器优化引擎根据在进行的分配情况确定实施回收的极品时间。

当垃圾回收器执行回收时,它检查托管堆中不再叫应用程序使用的目标并履行必要之操作来回收它们占有的内存。 

16.常用的调用webservice方法有哪些?

答:SOAP和WSDL 

17. 描写起同修Sql语句: 取出表A中第31至第40笔录(SQLServer, 以电动增长的ID作为主键, 注意:ID可能不是连的。)

解1:  select top 10
* from A where id not in (select top 30 id from A) 

解2:  select top 10
* from A where id > (select max(id) from (select top 30 id from A )as A) 

18.列举ASP.NET 页面内传递值的几栽方法。

答:

1.使用QueryString,
如….?id=1; response.Redirect()….

2.使用Session变量

3.使用Server.Transfer

4.使用Application变量

5.使用Cookie

6.
写起程序的出口结果 

19. 形容来程序的输出结果

图片 1图片 2

 1 class Class1
 2 
 3 {
 4 
 5 private string str = "Class1.str";
 6 
 7 private int i = 0;
 8 
 9 static void StringConvert(string str)
10 
11 {
12 
13 str = "string being converted.";
14 
15 }
16 
17  
18 
19 static void StringConvert(Class1 c)
20 
21 {
22 
23 c.str = "string being converted.";
24 
25 }
26 
27  
28 
29 static void Add(int i)
30 
31 {
32 
33 i++;
34 
35 }
36 
37  
38 
39 static void AddWithRef(ref int i)
40 
41 {
42 
43 i++;
44 
45 }
46 
47  
48 
49 static void Main()
50 
51 {
52 
53 int i1 = 10;
54 
55 int i2 = 20;
56 
57 string str = "str";
58 
59 Class1 c = new Class1();
60 
61 Add(i1);
62 
63 AddWithRef(ref i2);
64 
65 Add(c.i);
66 
67 StringConvert(str);
68 
69 StringConvert(c);
70 
71 Console.WriteLine(i1);
72 
73 Console.WriteLine(i2);
74 
75 Console.WriteLine(c.i);
76 
77 Console.WriteLine(str);
78 
79 Console.WriteLine(c.str);
80 
81 }
82 
83 } 

View Code

答案(考查值引用和对象引用): 10
21 0 str string being converted. 

20.勾来程序的输出结果

图片 3图片 4

 1 public abstract class A
 2 
 3 {
 4 
 5 public A()
 6 
 7 {
 8 
 9 Console.WriteLine('A');
10 
11 }
12 
13  
14 
15 public virtual void Fun()
16 
17 {
18 
19 Console.WriteLine("A.Fun()");
20 
21 }
22 
23 }
24 
25  
26 
27 public class B: A
28 
29 {
30 
31 public B()
32 
33 {
34 
35 Console.WriteLine('B');
36 
37 }
38 
39  
40 
41 public new void Fun()
42 
43 {
44 
45 Console.WriteLine("B.Fun()");
46 
47 }
48 
49  
50 
51 public static void Main()
52 
53 {
54 
55 A a = new B();
56 
57 a.Fun();
58 
59 }
60 
61 } 

View Code

答案(考查在继承类中构造函数,
以及new 方法):A B A.Fun() 

21. 状起程序的出口结果:

图片 5图片 6

 1 public class A
 2 
 3 {
 4 
 5 public virtual void Fun1(int i)
 6 
 7 {
 8 
 9 Console.WriteLine(i);
10 
11 }
12 
13  
14 
15 public void Fun2(A a)
16 
17 {
18 
19 a.Fun1(1);
20 
21 Fun1(5);
22 
23 }
24 
25 }
26 
27  
28 
29 public class B : A
30 
31 {
32 
33 public override void Fun1(int i)
34 
35 {
36 
37 base.Fun1 (i + 1);
38 
39 }
40 
41  
42 
43 public static void Main()
44 
45 {
46 
47 B b = new B();
48 
49 A a = new A();
50 
51 a.Fun2(b);
52 
53 b.Fun2(a);
54 
55 }
56 
57 }

View Code

答案:2 5 1 6

22. 同样列数的规则如下: 1、1、2、3、5、8、13、21、34……求第30各项数是稍微,用递归算法实现。(C#语言) 

答案:

图片 7图片 8

 1 public class MainClass
 2 
 3 {
 4 
 5 public static void Main()
 6 
 7 {
 8 
 9 Console.WriteLine(Foo(30));
10 
11 } 
12 
13 public static int Foo(int i)
14 
15 {
16 
17 if (i <= 0)
18 
19 return 0;
20 
21 else if(i > 0 && i <= 2)
22 
23 return 1;
24 
25 else return Foo(i -1) + Foo(i - 2);
26 
27 }
28 
29 }

View Code

23. 先后设计: 猫大吃一样名誉,所有的老鼠都从头跑,主人吃惊醒。(C#语言)

要求:
1.一旦发出联动性,老鼠和所有者的行为是被动的。2.设想而扩展性,猫的叫声可能滋生外联动作用。 

要:1.
联动效应,运行代码只要尽Cat.Cryed()方法。2.
对老鼠和所有者进行抽象

评分标准:
<1>.构造出Cat、Mouse、Master三只八九不离十,并能够而程序运行(2分割)

<2>从Mouse和Master中提抽象(5分叉)

<3>联动作用,只要尽Cat.Cryed()就足以使老鼠逃跑,主人惊醒。(3分开)

答案:

图片 9图片 10

  1 public interface Observer
  2 
  3 {
  4 
  5 void Response(); //观察者的响应,如是老鼠见到猫的反映
  6 
  7 }
  8 
  9  
 10 
 11 public interface Subject
 12 
 13 {
 14 
 15 void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠
 16 
 17 }
 18 
 19  
 20 
 21 public class Mouse : Observer
 22 
 23 {
 24 
 25 private string name;
 26 
 27  
 28 
 29 public Mouse(string name, Subject subj)
 30 
 31 {
 32 
 33 this.name = name;
 34 
 35 subj.AimAt(this);
 36 
 37 }
 38 
 39  
 40 
 41 public void Response()
 42 
 43 {
 44 
 45 Console.WriteLine(name + " attempt to escape!");
 46 
 47 }
 48 
 49 }
 50 
 51  
 52 
 53 public class Master : Observer
 54 
 55 {
 56 
 57 public Master(Subject subj)
 58 
 59 {
 60 
 61 subj.AimAt(this);
 62 
 63 }
 64 
 65  
 66 
 67 public void Response()
 68 
 69 {
 70 
 71 Console.WriteLine("Host waken!");
 72 
 73 }
 74 
 75 }
 76 
 77  
 78 
 79 public class Cat : Subject
 80 
 81 {
 82 
 83 private ArrayList observers;
 84 
 85  
 86 
 87 public Cat()
 88 
 89 {
 90 
 91 this.observers = new ArrayList();
 92 
 93 }
 94 
 95  
 96 
 97 public void AimAt(Observer obs)
 98 
 99 {
100 
101 this.observers.Add(obs);
102 
103 }
104 
105  
106 
107 public void Cry()
108 
109 {
110 
111 Console.WriteLine("Cat cryed!");
112 
113 foreach (Observer obs in this.observers)
114 
115 {
116 
117 obs.Response();
118 
119 }
120 
121 }
122 
123 }
124 
125  
126 
127 class MainClass
128 
129 {
130 
131 static void Main(string[] args)
132 
133 {
134 
135 Cat cat = new Cat();
136 
137 Mouse mouse1 = new Mouse("mouse1", cat);
138 
139 Mouse mouse2 = new Mouse("mouse2", cat);
140 
141 Master master = new Master(cat);
142 
143 cat.Cry();
144 
145 }
146 
147 }
148 
149  
150 
151 //---------------------------------------------------------------------------------------------
152 
153  
154 
155 设计方法二: 使用event -- delegate设计..
156 
157 public delegate void SubEventHandler();
158 
159  
160 
161 public abstract class Subject
162 
163 {
164 
165 public event SubEventHandler SubEvent;
166 
167 protected void FireAway()
168 
169 {
170 
171 if (this.SubEvent != null)
172 
173 this.SubEvent();
174 
175 }
176 
177 }
178 
179  
180 
181 public class Cat : Subject
182 
183 {
184 
185 public void Cry()
186 
187 {
188 
189 Console.WriteLine("cat cryed.");
190 
191 this.FireAway();
192 
193 }
194 
195 }
196 
197  
198 
199 public abstract class Observer
200 
201 {
202 
203 public Observer(Subject sub)
204 
205 {
206 
207 sub.SubEvent += new SubEventHandler(Response);
208 
209 }
210 
211  
212 
213 public abstract void Response();
214 
215 }
216 
217  
218 
219 public class Mouse : Observer
220 
221 {
222 
223 private string name;
224 
225 public Mouse(string name, Subject sub) : base(sub)
226 
227 {
228 
229 this.name = name;
230 
231 }
232 
233  
234 
235 public override void Response()
236 
237 {
238 
239 Console.WriteLine(name + " attempt to escape!");
240 
241 }
242 
243 }
244 
245  
246 
247 public class Master : Observer
248 
249 {
250 
251 public Master(Subject sub) : base(sub){}
252 
253  
254 
255 public override void Response()
256 
257 {
258 
259 Console.WriteLine("host waken");
260 
261 }
262 
263 }
264 
265  
266 
267 class Class1
268 
269 {
270 
271 static void Main(string[] args)
272 
273 {
274 
275 Cat cat = new Cat();
276 
277 Mouse mouse1 = new Mouse("mouse1", cat);
278 
279 Mouse mouse2 = new Mouse("mouse2", cat);
280 
281 Master master = new Master(cat);
282 
283 cat.Cry();
284 
285 }
286 
287 }

View Code

24、C#受到之寄托是呀?事件是无是同一种植委托?

答案:委托是一个得以本着艺术进行引用的切近。与任何的近乎不同,委托类具有一个签字,并且它只能针对与该签名匹配的章程开展引用。

然,委托就相当于效于一个种安全函数指针或一个回调。事件是如出一辙种植委托。 

25、接口和虚幻类有啊区别?你挑以接口及抽象类的因是啊?

答案:接口是一个纯粹的抽象类,没有其它实际的物,只是概念了一个框架,而抽象类里面可以生出实际的一个措施,

并无求有所的章程还是空泛的。可以兑现一个接口中之有着术,也足以继承一个抽象的类似,然后覆写其中的道。

接口一般只有方法,而无多少成员或性质。抽象类闹点子,也时有发生多少成员要性质,一般景象下,优先考虑就此接口,

只有当可能使拜访到多少成员要性能时,用抽象类。 

26、谈谈final, finally, finalize的区别。

答案:final修饰符用于指定类不可知扩大或者措施或者性能不能够重写。它用预防其他类似经过还写重要之函数来转该类的行为。

寓final修饰符的措施可由派生类吃的艺术来藏或重载。finally
块用于破除在 try 块中分红的旁资源。

支配总是传递让 finally
块,与 try 块的在方式无关。finalize允许 Object 在“垃圾回收”回收 Object
之前

尝释放资源并履行外清理操作。 

27.new出几栽用法?

答案:第一种:new
Class();

第二种植:覆盖措施public new
XXXX(){};

老三栽:new
约束指定泛型类声明中之任何项目参数还必产生集体的凭参数构造函数。
 

28.如何把一个array复制到arrayList里?

答案:foreach( object o in
array )arrayList.Add(o); 

29.概述反射和序列化

答案:反射:程序集带有模块,而模块包含类型,类型又饱含成员。反射则提供了打包程序集、模块和类的对象。

若得以反射动态地创造项目的实例,将品种绑定到现有对象,或打现有对象被收获项目。然后,可以调用类型的

计或者访问该字段和特性

序列化:序列化是拿对象转换为爱传输的格式的历程。例如,可以序列化一个目标,然后利用
HTTP 通过 Internet

在客户端和服务器之间传输该目标。在另外一头,反序列化将由该流重新组织对象。 

30.用sealed修饰的类似产生什么特点?

答案:sealed
修饰符用于防止从所修饰的类派生起其它类。如果一个密封类被指定为外类似的基类,则会发生编译时错。

机密封类不能够而为抽象类。sealed
修饰符主要用于防止非假意的派生,但是它还会促使某些运行时优化。具体说来,由于

潜在封类永远不会见出任何派生类,所以对密封类的实例的虚构函数成员的调用可以转移为非虚拟调用来拍卖。 

31.实行下代码后底结果:

图片 11图片 12

1 String strTemp ="abcdefg 某某某";
2 
3 Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
4 
5 Int j = strTemp.Length;
6 
7 问:i=(14 ) ;j=(11 ) 

View Code

答案:i=(14 ) ;j=(11 )
中文两只字节 

32.在c#中using和new这半个根本字有什么含义,请写来您所知之义?

答案:Using
引入一个名子空间,或以运了一个针对诸如后自动调用其IDespose,New
实例化一个对像,

抑或修饰一个主意,表此方法了重复写这个道。

 

33.每当脚的例证里 当使用new B()创建B的实例时,产生什么输出?

图片 13图片 14

 1 using System;
 2 
 3 class A
 4 
 5 {
 6 
 7 public A()
 8 
 9 {
10 
11 PrintFields();
12 
13 }
14 
15  
16 
17 public virtual void PrintFields(){}
18 
19 }
20 
21  
22 
23 class B:A
24 
25 {
26 
27 int x=1;
28 
29 int y;
30 
31 public B()
32 
33 {
34 
35 y=-1;
36 
37 }
38 
39  
40 
41 public override void PrintFields()
42 
43 {
44 
45 Console.WriteLine("x={0},y={1}",x,y);
46 
47 }
48 
49 }

View Code

答案:X=1,Y=0

34.底下的例证中出的输出结果是什么?

图片 15图片 16

 1 using System;
 2 
 3 class A
 4 
 5 {
 6 
 7 public static int X;
 8 
 9  
10 
11 static A()
12 
13 {
14 
15 X=B.Y+1;
16 
17 }
18 
19 }
20 
21  
22 
23 class B
24 
25 {
26 
27 public static int Y=A.X+1;
28 
29 static B(){}
30 
31 static void Main()
32 
33 {
34 
35 Console.WriteLine("X={0},Y={1}",A.X,B.Y);
36 
37 }
38 
39 } 

View Code

答案:x=1,y=2 

35.谈谈类和组织的别?

答案:最特别区别一个凡是引用类型,一个凡值类型默认成员访问也public是另外一个界别 

36.一个长短为10000之字符串,通过自由从a-z中抽取10000只字符组成。请用c#语言编写主要次来落实。

答案:

图片 17图片 18

1 Random r = new Random();
2 StringBuilder sb = new StringBuilder(10000);
3 for (int i = 0; i < 10000; i++)
4 {
5 sb.Append((char)((int)'a' + r.Next(0, 26)));
6 }
7 string str = sb.ToString();

View Code

37.呀叫SQL注入,如何防止?请举例说明。

答案:SQL注入就是以常规的SQL执行语句中恶意插入攻击者想如果运行的sql语句。1.无比根本之,不以组合sql的措施,

而是通过运用命令参数方式来执行命令,比如我们把sql改化这种方式:

string strSql = “select *
from [user] where LoginName =@LoginName and Pwd =@Pwd “;

下一场经过sqlcommand来推行其,就足以从根本上解决此问题。2.控制参数的长度。因为要想拓展sql注入的话,

内需一定长度的字符串才能够实行,如果我们规定LoginName
的长最丰富无越8独,一般不见面促成危害,当然者只

凡是在异常的图景下才祭,比如小情况也许不能够使命令参数方式。 

38.底就段代码输出什么?为什么? 

图片 19图片 20

1 int i=5;
2 
3 int j=5;
4 
5 if(Object.ReferenceEquals(i,j)) Console.WriteLine("Equal");
6 
7 else Console.WriteLine("Not Equal");

View Code

答案:Not
Equal,因为引用的地址不同。 

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

答 :

private : 私有成员,
在类的内部才足以拜。
protected :
保护成员,该类内部以及继承类中得拜。
public :
公共成员,完全公之于世,没有看限制。
internal:
在一如既往命名空间内得以拜。

39 .列举ASP.NET 页面内传递值的几种植办法。 

答:

1).使用QueryString,
如….?id=1; response. Redirect()….
2).使用Session变量

3).使用Server.Transfer

40.C#未遭之托是呀?事件是免是相同种植委托?

答 :
委托可以将一个主意作为参数代入另外一个方。

托可以了解也对一个函数的援。

凡是,是一致种植特别的嘱托

41.override和重载的区别是呀?

答 : override
与重载的别。重载是艺术的名一致。参数或参数类型不同,进行多次重载以适应不同之需override

大凡拓展基类中函数的重写。为了适应需要。

42.假设当一个B/S结构的系统遭到要传递变量值,但是又未能够使用Session、Cookie、Application,

出几种方式开展拍卖?

答 :
QueryString、FormsAuthentication、 this.Server.Transfer

43.呼吁编程遍历页面及装有TextBox控件并让其赋值为string.Empty?

答:

图片 21图片 22

1 foreach (Control control in this.Controls)
2 {
3 if (control is TextBox)
4 {
5 TextBox tb = (TextBox)control ; 
6 tb.Text = String.Empty ;
7 }
8 }

View Code

44.求编程实现一个冒泡排序算法?

答:

图片 23图片 24

 1 int[] array = new int [*] ;
 2 int temp = 0 ;
 3 for (int i = 0 ; i < array.Length - 1 ; i++)
 4 {
 5 for (int j = i + 1 ; j < array.Length ; j++)
 6 {
 7 if (array[j] < array[i])
 8 {
 9 temp = array[i] ;
10 array[i] = array[j] ;
11 array[j] = temp ;
12 }
13 }
14 }

View Code

45.叙述一下C#中索引器的兑现过程,是否只能依据数字进行索引?

报经:可以就此随机档次。

46.求以下表达式的值,写来您想到的同样种植或几乎种植实现方式: 1-2+3-4+……+m

答:

图片 25图片 26

 1 int sum=0;
 2 bool flag=true;
 3 for(int i=1;i<=m;i++)
 4 {
 5 if(flag)
 6 sum+=i;
 7 else
 8 sum-=i;
 9 flag=!flag;
10 }
11 return sum;

View Code

47.当脚的事例里 当使用new B()创建B的实例时,产生什么输出?

图片 27图片 28

 1 using System;
 2 class A
 3 {
 4 public A()
 5 {
 6 PrintFields();
 7 }
 8 public virtual void PrintFields(){}
 9 }
10 class B:A
11 {
12 int x=1;
13 int y;
14 public B()
15 {
16 y=-1;
17 }
18 public override void PrintFields()
19 {
20 Console.WriteLine("x={0},y={1}",x,y);
21 }

View Code

答:X=1,Y=0

48.什么叫应用程序域?

报:应用程序域可以理解啊同样种轻量级进程。起至安全的来意。占用资源小。

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

报经:CTS:通用语言体系。CLS:通用语言专业。CLR:公共语言运行库。

50.呀是装箱和拆箱? 

报:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

51.呀是深受管制之代码? 

报:unsafe:非托管代码。不经过CLR运行。

52.哟是强类型系统?

报:RTTI:类型识别系统。

53.net中读写数据库需要利用那些看似?他们之用意?

报:SqlConnection/OleDbConnection:建立数据库的连;

SqlCommand/OleDbCommand:执行数据库脚本。 

54.当.net中,配件的意是? 

报经:程序集。(中间语言,源数据,资源,装配清单)

55.常用之调用WebService的法子来什么样? 

答:

1.利用WSDL.exe命令行工具。
2.采用VS.NET中的Add Web
Reference菜单选取项

56. .net Remoting 的干活原理是什么? 

答:服务器端向客户端发送一个过程编号,一个程序域编号,以确定目标的职务。

57.冲线程安全之系文化,分析以下代码,当调用test方法时i>10时是否会见招死锁?并略说明理由。

图片 29图片 30

 1 public void test(int i) 
 2 { 
 3 lock(this) 
 4 { 
 5 if (i>10) 
 6 { 
 7 i--; 
 8 test(i); 
 9 } 
10 } 
11 }

View Code

答:不见面生出死锁,(但出好几int是依值传递的,所以每次变更的还单是一个副本,因此无会见起死锁。

而如将int换做一个object,那么死锁会发生)

58.简只要摆一下公对微软.NET 构架下remoting和webservice两项技术的了解与实际中之应用。 

报经:WS主要是只是采用HTTP,穿透防火墙。而Remoting可以运用TCP/IP,二进制传送提高效率。

remoting是.net
中之所以来跳machine, process, appdomain
进行方式调用的技巧,对于三层组织的程序,

就可下remoting技术来构建.它是遍布应用之底子技术.相当给以前的DCOM
Web Service是如出一辙种植构建

应用程序的一般性模型,并能够以享有支持internet网报道的操作系统及实行。Web
Service令基于组件的支出以及

web的结上最佳,基于组件的目标模型

59.店家要求开一个蝉联System.Windows.Forms.ListView类的零件,要求达到以下的非正规功能:

点击ListView各列列头时,能随点击列的各个行值进行重排视图中之有着行 (排序的主意使DataGrid相似)。

因你的知,请简要谈一下君的思绪 

报:根据点击的列头,包该列的称呼取出,按照该列名排序后,再绑定到ListView中。

60.给一定以下XML文件,完成算法流程图。

图片 31图片 32

1 <FileSystem> 
2 < DriverC > 
3 <Dir DirName=”MSDOS622”> 
4 <File FileName =” Command.com” ></File> 
5 </Dir> 
6 <File FileName =”MSDOS.SYS” ></File> 
7 <File FileName =” IO.SYS” ></File> 
8 </DriverC> 
9 </FileSystem> 

View Code 

61.央画生遍历所有文件称(FileName)的流程图(请以递归算法)。

报:图虽未打了,直接将程序写出来:

图片 33图片 34

 1 Public void DomDepthFirst(XmlNode currentNode)
 2 {
 3 XmlNode node=currentNode.FirstChild;
 4 while(node!=null)
 5 {
 6 DomDepthFirst(node);
 7 node=node.NextSibling;
 8 }
 9 if(node.Name=="File")
10 {
11 Console.Write(((XmlElement)node).GetAttribute("FileName")+"\r\n");
12 }
13 }

View Code 

62.可知用foreach遍历访问的对象需要实现 ______接口或宣称_______方式的品类。

答:IEnumerable 、
GetEnumerator。

63.GC是什么? 为什么要发生GC? 

报经:GC是污染源收集器。程序员不用顾虑内存管理,因为废品收集器会自动进行管理。要乞求垃圾收集,

足调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

64.String s = new String(“xyz”);创建了几只String Object? 

报:两个目标,一个凡“xyz”,一个是依靠为“xyz”的援对像s。

65.abstract class暨interface有啊界别? 

答:

宣示方法的存如未失去贯彻其的好像吃喻为抽像类(abstract
class),它用于要创造一个体现某些基本表现之近乎,

并也此类声明方法,但切莫克当此类中贯彻该类的情事。不可知创abstract
类的实例。然而可以创建一个变量,

该项目是一个抽像类,并为它们对具体子类的一个实例。不克发抽像构造函数或抽像静态方法。Abstract
类的

子类为其父类中之持有抽像方法供实现,否则其也是抽像类为。取而代之,在子类中实现该方法。知道其

行事之另类可以在类似吃实现这些办法。

接口(interface)是抽像类的变体。在接口中,所有方还是抽像的。多继承性可透过落实如此的接口而获取。

接口中之具备方还是抽像的,没有一个生程序体。接口就可以定义static
final成员变量。接口的贯彻同子类相似,

除了该实现类不能够从接口定义中连续行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的点子。

然后,它可于贯彻了该接口的切近的外对如及调用接口的方。由于有抽像类,它同意采取接口名作为援变量的花色。

常见的动态联编将生效。引用得换到接口类型或由接口类型转换,instanceof
运算符可以据此来控制有目标的接近是否实现了接口。

66.起步一个线程是因此run()还是start()? 

报:启动一个线程是调用start()方法,使线程所表示的杜撰处理机处于可运行状态,这表示其好由JVM调度并尽。

即时并无意味线程就见面及时运行。run()方法好生出必须退出的标志来歇一个线程。

67.接口是否只是继续接口? 抽像类是否可实现(implements)接口? 抽像类是否只是继承实体类(concrete class)? 

报经:造函数接口可以延续接口。抽像类可以兑现(implements)接口,抽像类是否只是继承实体类,但前提是实业

恍如必须产生拨云见日的结构。

68.构造器Constructor是否可被override? 

报经:构造器Constructor不能够让持续,因此无克还写Overriding,但可为重载Overloading。

69.是否好延续String类? 

答:String类是final类故不得以继承。

70.片只对如值相同(x.equals(y) == true),但也唯独发异之hash code,这句话对怪? 

答:不对,有同之hash
code。

71.swtich是否能够图在byte上,是否能图在long上,是否能图在String上? 

答:switch(expr1)中,expr1凡一个整型,字符或字符串,因此可以作用在byte和long上,也得作用在string上。

72.当一个线程进入一个靶的一个synchronized方法后,其它线程是否只是进入这目标的其它措施? 

报:不能够,一个对象的一个synchronized方法才能够由一个线程访问。

73.abstract的method是否只是同时是static,是否可又是native,是否可同时是synchronized?

答:都不能。

74.List, Set, Map是否继续自Collection接口?

答:List,Set是Map不是

75.Set里之素是免能够再的,那么因此什么办法来区别重复与否呢? 是用==还是equals()? 它们来哪里区别? 

答:Set里之要素是休可知重复的,那么因此iterator()方法来分重复与否。equals()是判读两单Set是否等。

equals()和==方法决定引用值是否对准同一对像equals()在类似吃吃遮盖,为的凡当半只分别之目标的情节与

类型相配的口舌,返回真值。

76.数组发生没有发出length()这个法? String有无起length()这个措施? 

答:数组和string都没有Length()方法,只有Length属性。

77.sleep() 和 wait() 有啊界别? 

报经:sleep()方法是用目前线程挂于指定的日子。

wait()释放对象上的锁并阻塞时线程,直到她还获得该锁。

78.short s1 = 1; s1 = s1 + 1;有啊错? short s1 = 1; s1 += 1;有什么错? 

答:short s1 = 1; s1 = s1

  • 1;有摩擦,s1是short型,s1+1是int型,不克显式转化为short型。

可是改也s1 =(short)(s1 +
1) 。short s1 = 1; s1 += 1正确。

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

答:

final-修饰符(关键字)如果一个类让声称也final,意味着她不克更派生出新的子类,不可知当父类被持续。

于是 一个近乎非可知既让声称也
abstract的,又被声称也final的。将变量或方式声明也final,可以确保它在使用被

免受更改。被声称也final的变量必须在宣称时被一定新值,而于之后的援中只能读取,不可修改。被声称也
final的方

依傍乎同等只能以,不可知重载finally-再特别处理时提供
finally 块来执行外清除操作。如果摒弃来一个生,那么相兼容

配的 catch 子句就会
执行,然后决定就会进来 finally 块(如果有的话)。finalize-方法名。Java
技术允许下 finalize()

方法以垃圾堆收集器将针对如打内存中清除出前做必要之清理
工作。这个方法是由于垃圾收集器在确定是目标没为引述时

针对这目标调用的。它是当
Object 类中定义之 ,因此有所的类都继承了它。子类覆盖 finalize()
方法以整治系统资源或者执行

实践外清理工作。finalize()
方法是以废品收集器删除对如之前对是目标调用的。

80.怎样处理几十万修出现数据? 

报经:用存储过程或者工作。取得最老标识的当儿以更新..注意主键不是自从增量方式这种方法并发的时是不见面时有发生再主键的.

.取得最要命标识要发出一个仓储过程来博取.

81.Session发出什么要BUG,微软提出了啊艺术加以解决? 

报:是iis中由有经过回收机制,系统繁忙的话Session会丢掉,可以用Sate
server或SQL Server数据库的方法囤

Session不过这种办法较缓慢,而且无法捕获Session的END事件。

82.过程和线程的区别? 

报经:进程是系统开展资源分配与调度的单位;线程是CPU调度和分担的单位,一个进程可以来多独线程,这些线程共享斯过程的资源。

83.堆及仓库的分别? 

报:栈是编译期间就分配好之内存空间,因此若的代码中必须就栈的高低有显著的概念;堆是程序运行期间动态分配的内存空间,

你可以根据程序的周转状况确定要分配的堆积内存的尺寸

84.成员变量和成员函数前加static的意向? 

报经:它们为喻为常成员变量和常常成员函数,又叫做类成员变量和接近成员函数。分别就此来体现类似的状态。比如类似成员变量可以据此来统

计类实例的数目,类成员函数负责这种统计的动作。

85.ASP.NET与ASP相比,主要出什么样发展? 

报:asp解释形,aspx编译型,性能提高,可以和画的行事分别进行,更利于团队开发。

 

>>>>>>>>>>>>>>>第二片<<<<<<<<<<<<

相关文章