2024年4月19日发(作者:)

1.

.net

C# or

)中如何获得当前窗体或控件的句柄,特别是

控件本身的句柄(请列举)。答案

:this(C#) Me().

2.

.net

C# or

)中如何取消一个窗体的关闭。

答案

:

private void Form1_Closing(object sender,

EventArgs e)

{

=true;

}

3.

.net

C# or

)中,

还是

有什

么不同?

答案

:

一个是退出整个应用程序,一个是关闭其中一个

form

4.

C#

中有一个

double

型的变量,比如

10321.5

,比如

122235401.21644

,作为货币的值如何按各个不同国家的习惯来输

出。比如美国用

$10,321.50

$122

235

401.22

而在英国则为

10 321.50

和£

122 235 401.22

答案

:

public static void Main()

{

//eInfo

MyCulture = new

eInfo("en-US"

);

eInfo MyCulture = new

eInfo("en-GB");//为

英国货币类型

decimal y = 9999999999999999999999999999m;

string str = (MyCulture, "My

amount = {0:c}", y);

ine(str);

}//{0,10:c} 0下标,10字符串要占用的字符数如果

字符数不够也会完整显示 ,

:c格式说明符 d,e,f,g,n,p,x

5.

某一密码仅使用

K

L

M

N

O

5

个字母,密码中的单词从

左向右排列,密码单词必须遵循如下规则:

1

密码单词的最小长度是两个字母,可以相同,也可以不

2

K

不可能是单词的第一个字母

3

如果

L

出现,则出现次数不止一次

4

M

不能使最后一个也不能是倒数第二个字母

5

K

出现,则

N

就一定出现

6

O

如果是最后一个字母,则

L

一定出现

问题一:下列哪一个字母可以放在

LO

中的

O

后面,形成一个

3

个字母的密码单词?

A) K B)L C) M D) N

答案

:B

问题二:如果能得到的字母是

K

L

M

,那么能够形成的两个字

母长的密码单词的总数是多少?

A)1

B)3

C)6

D

9

答案

:A LL

问题三:下列哪一个是单词密码?

A) KLLN B) LOML C) MLLO D)NMKO

答案

:C

6. 62-63=1

等式不成立,请移动一个数字(不可以移动减号和等于

号),使得等式成立,如何移动?

答案

:62

移动成

2

6

次方

7.

根据线程安全的相关知识,分析以下代码,当调用

test

方法时

i>10

时是否会引起死锁

?

并简要说明理由。

(10

)

答案:

不会引起死锁(但有一点

int

是按值传递的,所以每次改

变的都只是一个副本,因此不

会出现死锁。但如果把

int

做一个

object

,那么死锁会发生)

public void test(int i)

{ lock (this)

{ if (i > 10)

{ i--;

test(i);

}

}

}

8

简要谈一下您对微软

.NET

构架下

remoting

webservice

两项技

术的理解以及实际中的应用。

(10)

答:

WS

主要是可利用

HTTP

,穿透防火墙。而

Remoting

可以

利用

TCP/IP

,二进制传送提高效率。

9.

公司要求开发一个继承

ew

类的组

件,要求达到以下的特殊功能:点击

ListView

各列列头时,能按

照点击列的每行值进行重排视图中的所有行

(

排序的方式如

DataGrid

相似

)

。根据您的知识,请简要谈一下您的思路:

(10)

答:根据点击的列头

,

包该列的

ID

取出

,

按照该

ID

排序后

,

在给

绑定到

ListView

10.

String

StringBuilder

的区别?

答案:

1

) 类是一种传统的修改字符串的方式,它确实可

以完成把一个字符串添加到另一个字符串上的工作没错。但是

在.NET框架下,这个操作实在是划不来。因为系统先是把两个字

符串写入内存,接着删除原来的String对象,然后创建一个

String对象,并读取内存中的数据赋给该对象。这一来二去的,

耗了不少时间,产生两个垃圾。

2

)而使用命名空间下面的StringBuilder类就不是

这样了,它提供的Append方法,能够在已有对象的原地进行字符

串的修改,简单而且直接。如果想要编写将连续操作依次连接起

来的单个语句,这将很方便。

如果要操作一个不断增长的字符串,请你不要再用String类

了。当然,一般情况下你是觉察不出这二者效率的差异的,但如果

你要对某个字符串进行大量的添加操作,那么用StringBuilder类

所耗费的时间和String类简直不是一个数量级的。

11.

能用

foreach

遍历访问的对象需要实现

_______

接口或声明

_________

方法的类型。

答:

IEnumerable

GetEnumerator

12. GC

是什么

?

为什么要有

GC?

答:

GC

是垃圾收集器。程序员不用担心内存管理,因为垃圾收

集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之

一:

()

time().gc()

13. String s = new String("xyz");

创建了几个

String Object?

答:两个对象,一个是

“xyx”,

一个是指向

“xyx”

的引用对象

s

14

. .abstract class

interface

有什么区别

?

答:

声明方法的存在而不去实现它的类被叫做抽象类

abstract class

),它用于要创建一个体现某些基本行为的类,并为

该类声明方法,但不能在该类中实现该类的情况。不能创建

abstract

类的实例。然而可以创建一个变量,其类型是一个抽象类,

并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态

方法。

Abstract

类的子类为它们父类中的所有抽象方法提供实现,

否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其

行为的其它类可以在类中实现这些方法。

接口(

interface

)是抽象类的变体。在接口中,所有方法都是

抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方

法都是抽象的,没有一个有程序体。接口只可以定义

static final

员变量。接口的实现与子类相似,除了该实现类不能从接口定义中

继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有

这种接口的方法。然后,它可以在实现了该接口的类的任何对象上

调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量

的类型。通常的动态联编将生效。引用可以转换到接口类型或从接

口类型转换,

instanceof

运算符可以用来决定某对象的类是否实现

了接口。

15. sleep()

wait()

有什么区别

?

答:

sleep()

方法是使线程停止一段时间的方法。在

sleep

时间间隔

期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它

线程可能正在运行而且没有被调度为放弃执行,除非

(a)“

醒来

线程具有

更高的优先级

(b)

正在运行的线程因为其它原因而阻塞。

wait()

是线程交互时,如

果线程对一个同步对象

x

发出一个

wait()

调用,该线程会暂停执行,

被调对象进入等待状态,直到被唤醒或等待时间到。

16

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

正确。

17

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

答:用存储过程或事务。取得最大标识的时候同时更新

..

注意主键

不是自增量方式这种方法并发的时候是不会有重复主键的

..

取得

最大标识要有一个存储过程来获取

.

18

Session

有什么重大

BUG

,微软提出了什么方法加以解决?

答:是

iis

中由于有进程回收机制,系统繁忙的话

Session

会丢失,

可以用

Sate server

SQL Server

数据库的方式存储

Session

不过

这种方式比较慢,而且无法捕获

Session

END

事件。

19

.进程和线程的区别?

答:进程是系统进行资源分配和调度的单位;线程是

CPU

调度和

分派的单位,一个进程可以有多个线程,这些线程共享这个进程

的资源

20

.堆和栈的区别?

答:

栈:由编译器自动分配、释放。在函数体中定义的变量通

常在栈上。

堆:一般由程序员分配释放。用

new

malloc

等分配内存

函数分配得到的就是在堆上。

21

ASP

NET

ASP

相比,主要有哪些进步?

答:

asp

解释形,

aspx

编译型,性能提高,有利于保护源码。

22

.产生一个

int

数组,长度为

100

,并向其中随机插入

1-100

,并且

不能重复。

int[] intArr=new int[100];

ArrayList myList=new ArrayList();//

动态数组

(

数组列表

)

Random rnd=new Random();

while(<100)

{

int num=(1,101);

If(!ns(num))

{ (num); }

}

for(int i=0;i<100;i++)

{

intArr[i]=(int)myList[i];

}

23

.列举

页面之间传递值的几种方式。

答. 1.使用

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

2.使用Session变量

3.使用er

24.如果在一个

B/S

结构的系统中需要传递变量值,但是又不能使用

Session

Cookie

Application

,您有几种方法进行处理?

答 :er

25.描述一下

C#

中索引器的实现过程,是否只能根据数字进行索引?

答:不是。可以用任意类型。

26.求以下表达式的值,写出您想到的一种或几种实现方

法:

1-2+3-4+……+m

答: int Num = 32(ne());

int Sum = 0 ;

for (int i = 0 ; i < Num + 1 ; i++)

{ if((i%2) == 1)

{Sum += i ;}

Else

{Sum = Sum - i;}

}

ine(ng());

27

.用

.net

B/S

结构的系统,您是用几层结构来开发,每一层之间

的关系以及为什么要这样分层?

答:一般为3层:

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

1).数据访问层对数据库进行增删查改。

2).业务层一般分为二层,业务表现层实现与表示层的沟通,

业务规则层实现用户密码的安全等。

3).表示层为了与用户交互例如用户添加表单。

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

缺点: 增加成本。

28.

什么叫应用程序域?

答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用

资源小。

应用程序域是.NET中的一个重要技术改进,他用于减少运行应

用程序的系统开销,这些应用程序需要与其他程序分离开来,但

同时还需要彼此通信。

29.

CTS

CLS

CLR

分别作何解释?