日期:2014-05-18  浏览次数:20404 次

ASP.NET面试题【汇总贴】——(基本概念、算法、.net程序员所需掌握的sql,基本技巧,常用代码,创新想法,等等)……
本帖主旨:

  此帖为.net面试汇总贴,目的在于汇总网上所有经典DotNet 面试题(当然也包括自己认为比较重要或者常用的技巧),

以供后来者学习提高。

  内容包括(基本概念、算法、.net程序员所需掌握的sql,基本技巧,常用代码,创新想法,等等)。

活动规则:

  a.每人每次回复最多提供10道题目,多了看的眼花缭乱,但可以多次回复,咱们不求多,只求有意义;
   
  b.原则上要求提供相应的参考答复(特别题目除外),网上搜一堆乱七八糟的东西,没人看啊,浪费表情;
 
  c.原则上尽量少提供超级连接,这样就失去了一帖汇总的目的;

  d.请不要吝啬你的一点点时间,整理一下,回复一下,Happy hp 一下;

  e.您的回复,csdner给您祝福!

  x.悄悄的说一句,分少了可以拍砖
end



下面自己先来一个实例,望能起到抛砖引玉的作用

1、Session有什么重大BUG,微软提出了什么方法加以解决?

  答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据
库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。


2.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
C# code

int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
 {
   int num=rnd.Next(1,101);
   if(!myList.Contains(num))
      myList.Add(num);
 }
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];




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

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

4.<%# %> 和 <% %> 有什么区别?

  答:<%# %>表示绑定的数据源
  <% %>是服务器端代码块



------解决方案--------------------
Asp.net清空页面上的所有TextBox
C# code

foreach (Control c in this.FindControl("form1").Controls)
{
    if (c is TextBox)
    {
        ((TextBox)c).Text = "";
    }
}

------解决方案--------------------
C# code

            Random r = new Random();
            List<int> iNumberList = new List<int>();

            int i = r.Next(1, 100);//第一个数不可能重复 所以先把它添加进去
            iNumberList.Add(i);

            while (iNumberList.Count < 100)
            {
                while (iNumberList.Contains(i))
                {
                    i = r.Next(1, 101); 
                }
                iNumberList.Add(i);
            }

------解决方案--------------------
1.new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.概述o/r mapping 的原理
利用反射,配置 将类于数据库表映射
7.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
8.列举ADO.NET中的五个主要对象,并简单描述
connection,command,dataReader,trans,dataset ...
9.执行下面代码后:
String strTemp ="abcdefg 某某某";
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
问:i=(14 ) ;j=(11 )
i=(14 ) ;j=(11 ) 中文两个字节
10.C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配)
string str ="" 分配空间 
11.详述.NET里class和struct的异同!
class:放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。

------解决方案--------------------