网上的一个面试题 ,c#

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

Q:Override与重载有什么区别?

Q:值类型与引用类型有什么区别?

Q:怎样理解静态变量?

Q:向服务器发送请求有几种方式?

Q:DataReader与Dataset有什么区别?

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

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

Q:软件开发过程一般有几个阶段?每个阶段的作用?

Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?

Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式?

Q:您对WebService的体会?

Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平?

Q:您离职的原因是什么?

以下几道题目如果您不会,请较为详细的描述您的解决思路和方法

Q:通过超链接怎样传递中文参数?

Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

Q:请编程实现一个冒泡排序算法?

1) 虚拟方法是在继承类中可以被重写(Override,功能已经实现),接口是Contact,其中的成员功能都没有实现,需要在继承类中实现.

2)Override 是覆盖基类中成员方法、性质. 重载是通过对方法的签名不同来实现的。

3) 值类型是直接在堆栈中创建,引用类型是在堆栈中创建指向堆(存放值的)的引用。

4)静态变量:在程序启动的时候,就已经为其分配内存资源,可以直接使用。

5)post get

6) DataReader读取数据是向前只读的,并且必须和数据库保持连接.

DataSet不需要和数据库保持连接。

7)3种Server.Transfer,Cache, Request.QueryString

8) 3层,webui-->业务逻辑--->数据访问

9) 需求--〉概要设计--〉详细设计----〉实现----〉测试----〉维护????

10)Microsoft Data Application Block??

11) Web表示模式:Page Controller(ASP.NET目前用的就是这个) Front Controller(Java的Struts可能就是这个吧不敢确定,希望高人指点).

创建型模式:Simple Factory(判断逻辑放在创建方法里,Client不需要知道返回类型,只要符合某个接口就可以), Factory Methods(), AbstractFactory(), Builder(比如构造一句SQL语句,分为4个部分,在Builder可以用不同方法构造不同部分.), 还有一个迭代器不熟悉,其他的不知道太多了(用到了会学的)。

12)WebService 没有用过,接触过一点,体会是:XML传输数据,Soap封装,Http传输(这句学的是CSDN上的某个人的忘了)。

13) 激情四射,遇到不会的尽量自己解决,解决不了了问别人(我相信别人也会帮助我的.),动手去做自己不懂的,来提高自己.

14) 没项目做.

a) Server.Url()???希望高人指点(一直传递e文).

b) 利用反射从页面Container容器中,获得所有的控件,判断Type是不是TextBox,然后对其付值.

c)

int[] array = {2,3,1,6,5};

for( int i=0; i<array.Length; i++)

{

for( int j=0; j<array.Length-i-1; j++ )

{

if( array[j] > array[j+1] ) swap( ref array[j], ref array[j+1] );

}

}

for( int k=0; k<array.Length; k++ )

{

Console.Write( array[k] );

}

请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

我是用递归来遍历所有的页面控件,然后判断类型

private void r(Control c)

{

for (int i=0;i<c.Controls.Count;i++)

{

if (c.Controls[i].GetType() == typeof(TextBox))

((TextBox)c.Controls[i]).Text = "hello";

if (c.Controls[i].Controls.Count > 0)

this.r(c.Controls[i]);

}

}

赋值操作:

public void initTextBox()

{

for(int i = 0; i< Controls.Count; i++)

{

Control myControl = Controls[i];

if( myControl is Text)

{

MyCotrol.Text = String.Empty;

}

}

}

public void initTextBox()

{

System.Windows.Contros.TextBox testbox;

foreach(object obj in this.Control )

{

if( obj.GetType().tostring()=="System.Windows.Contros.TextBox ")

{

testbox=(TextBox)obj;

testbox.text="string.Empty";

}

}

}