网上的一个面试题 (c#)(配有解答)

来源:互联网 发布:清风网络 编辑:程序博客网 时间:2024/03/28 20:11
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";
}
}
}
原创粉丝点击