面试宝典

1·视图零时表,加快数据的查询

上传步骤:使用到了FileUpload控件,FileStreamhttppostfile

1,准备文件名

2,将上传文件缓存在内存中

3.采用流的方式边上传变接收,接收内容写入磁盘中

1. CLRCTSCLS 分别是什么意思? 

共公语言运行库,通用类型系统,公共语言规范

2. 什么是基元类型? 

由编译器直接支持的数据类型称为基元类型. 

例如:C#中的int,string等等就是,实际运行过程中被映射为FCL中对应的类型(java中叫做包装类)

如:System.Int32,System.String. 

3. 值类型和引用类型的区别是什么?为什么要设计值类型?值类型会被GC回收吗?值类型是否能在托管堆分配?

1. a.值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。 b.值类型存取速度快,引用类型存取速度慢。 c.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用d.值类型继承自System.ValueType,引用类型继承自System.Object  e.C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型。 

2. 设计值类型为了效率高,快速分配空间

3.它在栈上,不会被GC回收.(GC只回收托管堆上的内容)

4.不可以,除非将它装箱.

4. Equals= =ReferenceEquals 如何区别使用?

Equals确定指定的实例是否被视为相等,但是如果为空就不能被调用,常被重写override

==:对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于 string 以外的引用类型,如果两个操作数引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。

ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用。对于值类型它总是返回false。

5. 什么是虚方法?如何理解多态?

虚方法就是用virtual修饰的方法.调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员.它是实现多态的途径之一.

 通过多态,实现了对象的多样性,并且实现迟绑定,提高程序的灵活性.  

6. overload  override 有什么区别?

Overload:c#没有该关键字,理解为重载,属于运行前,编译时的一种技术.是继承的范畴.

Override:是运行时技术,用它实现多态.

方法的重写Overriding和重载Overloading是多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 

7. 基于接口编程的目的是什么?什么情况下使用接口,什么情况下使用抽象类?

目的:(1)a.采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。 b. 接口和实现分离了,适于团队的协作开发。 C.可以参看IDP原则。

(2) 用来对实现它的类提供约束用接口

(3) 当要访问到数据成员或属性时,用抽象类.

基于接口编程的目的是为了提高程序的灵活性.

当一个类要准备继承多个类的时候,必须用接口,

当一个类需要被继承且有方法必须要被定义时,用抽象类.

8. 委托是什么意思?什么叫委托链?我们能在代码中继承 MulticastDelegate吗? 

(1) 委托是一个可以对方法进行引用的类。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用

1.委托是通过对方法名的调用来调用方法的一种对象,委托类似于 C++ 函数指针,但它们是类型安全的。

委托允许将方法作为参数进行传递。委托可用于定义回调方法。

2.将多个委托链接在一起,供对象使用,构成委托链

3. MulticastDelegate 是一个特殊类。编译器和其他工具可以从此类派生,但是不能显式地从此类进行派生

9. 实现 Iterators 一般用到哪些接口? 

IEnumerable, IEnumerator

10. 请写一个简单泛型类型,要求有两个泛型参数 TK,其中 T 必须是值类型,K 必须实现了 IDisposable 接口。 

class cls<T,K>

     where T:struct

     where K:IDisposable

{

      private bool disposed = false; 

      public cls() { }

      public void Dispose()

      {

            Dispose(true);

            GC.SuppressFinalize(this);

       } 

       private  void  Dispose(bool disposing)

       {

            if(!this.disposed)

            { 

                if(disposing)  { component.Dispose();}

                CloseHandle(handle);

                handle = IntPtr.Zero;

                disposed = true; 

            }

        }

}
11、简要谈一下您对微软.NET构架下remoting·两项技术的理解以及实际中的应用。 

remoting是.net   中服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置,跨越machine,   process,   appdomain   进行方法调用的技术,对于三层结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM, Remoting可以利用TCP/IP,二进制传送提高效率.

Web Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。Web   Service令基于组件的开发和web的结合达到最佳,基于组件的对象模型 . Web   Service主要是可利用HTTP,穿透防火墙.

12 .请解释ASPNET中以什么方式进行数据验证

  Aps.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件,另还有一个集中验证信息处理控件

13  WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。

在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到服务器端.
只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件,模拟单击按钮时发生到服务器的往返行程.

14  WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?

可以调用

例如: <asp:TextBox id="TextBox1" οnclick="clientfunction();" runat="server">

</asp:TextBox>

<INPUT id="Button2" value="Button" name="Button2"

runat="server" οnclick="clientfunction();">

15  请解释ASPNET中的web页面与其隐藏类之间的关系?

一个ASP.NET页面一般都对应一个隐藏类,一般都在ASP.NET页面的声明中指定了隐藏类例如一个页面Tst1.aspx的页面声明如下

<%@ Page language="c#"Codebehind="Tst1.aspx.cs" AutoEventWireup="false"Inherits="T1.Tst1" %>

Codebehind="Tst1.aspx.cs" 表明经编译此页面时使用哪一个代码文件,Inherits="T1.Tst1" 表用运行时使用哪一个隐藏类.Web页面描述的是显示内容,而隐藏类描述的大多是c#的业务逻辑,

16  什么是viewstate,能否禁用?是否所用控件都可以禁用?

Viewstate是保存页面标签状态的一种机制,EnableViewState属性设置为false即可禁用,理论上都可以禁用,但是一个页面总会有20个字节来保留页面标签的内容.

17  当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决

很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断

18  请解释什么是上下文对象,在什么情况下要使用上下文对象

上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象

(Response,Request,Session,Server,Appliction等)时就要以使用此对象. (它封装有关HTTP 请求中的所有 HTTP 特定的信息,由于WEB程序以请求为基础的,所以通过这个可以访问请求页面的信息.)

19请解释转发与跳转的区别?

(1)转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面,是服务器端行为,以前的request中存放的变量不会失效,就像把两个页面拼到了一起,asp.net中的Server.Transfer就是,地址栏不会改变内容。速度较快。

(2)跳转就是指客户端的跳转,是客户端行为。

 Response.Redirect()就是。

20.请简述一下用Socket进行同步通讯编程的详细步骤:

1、在应用程序和远程设备中使用协议和网络地址初始化套接字 
2、在应用程序中服务器端通过指定端口和地址建立监听,服务器挂起等待 
3、远程设备(客户端)发出连接请求 ,服务器激活
4、应用程序接受连接产生通信socket
5、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束) 
6、通讯结束,关闭应用程序和远程设备的Socket回收资源

21 请解释web.config文件中的重要节点

appSettings包含自定义应用程序设置。

system.web 系统配置

compilation动态调试编译设置

customErrors自定义错误信息设置

authentication身份验证,此节设置应用程序的身份验证策略。

authorization授权,此节设置应用程序的授权策

22请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。 

(1)使用QueryString; 简单,易被伪造,长度有限

(2).使用Session(viewstate) 简单,但易丢失 

(3).使用Server.Transfer

(4).application 全局 简单,但消耗服务器资源

(5).cookie 简单,但可能不支持,可能被伪造 

(6).input ttype="hidden" 简单,可能被伪造 

(7).数据库稳定,安全,但性能相对弱

23.net的错误处理机制是什么

.net错误处理机制采用try->catch->、结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

24C#中接口和类的异同

接口和类都是引用类型,不同的是,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。

25DataReaderDataSet的异同

(1)DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..

因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..

因为DataReader的特殊性和高性能.所以 DataReader是只进的..你读了第一条后就不能再去读取第一条了..

(2)DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...

 

26.c#usingnew这两个关键字有什么意义,请写出你所知道的意义?

Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,

New 实例化一个对像,或修饰一个方法,表示此方法重写父类同名方法

27谈谈类和结构的区别?

最大区别一个是引用类型,一个是值类型

1)、结构是值类型;  2)、结构不支持继承;

  3)、结构不能定义默认的构造函数;

  4)、结构不能定义析构函数;

  5)、结构不能使用初始值设置域值。 

28..netC# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)

this(C#) Me(vb.net).

29.netC# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息。

在form中重载DefWndProc函数来处理消息:

protected override void DefWndProc ( ref System.WinForms.Message m )

{

switch(m.msg)

{

case WM_Lbutton :

 ///string与MFC中的CString的Format函数的使用方法有所不同 

 string message = string.Format("收到消息!参数为:{0},{1}",m.wParam,m.lParam);

 MessageBox.Show(message);///显示一个消息框 

 break;

case USER:

处理的代码

default:

 base.DefWndProc(ref m);///调用基类函数处理非自定义消息。 

 break;

}

}

30. .netC# or vb.net)如何启动另一个程序。

Process类的静态方法Start 

31. .netC# or vb.net)中如何取消一个窗体的关闭

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{e.Cancel=true;}

 

32..netC# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?

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

33.C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50$122235401.22而在英国则为£10 321.50和£122 235 401.22

System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");

//System.Globalization.CultureInfo MyCulture =new System.Globalization.CultureInfo("en-GB");为英国货币

类型

decimal y = 9999999999999999999999999999m;

string str = String.Format(MyCulture,"My amount = {0:c}",y);

34. 某一密码仅使用KLMNO5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:

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

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

3 如果L出现,则出现次数不止一次

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

5 K出现,则N就一定出现

6 O如果是最后一个字母,则L一定出现

问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?(B)

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

问题二:如果能得到的字母是KLM,那么能够形成的两个字母长的密码单词的总数是多少?(A)

A)1个 B)3个 C)6个 D)9个 

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

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

35. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?

答案:62移动成2的6次方

36.C#中的接口和类有什么异同。

答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念,而类是负责功能的具体实现! 

抽象类与接口的区别在于: 

抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。但接口是一个行为的规范,里面的所有东西都是抽象的!一个类只可以继承一个基类也就是父类,但可以实现多个接口

 

 

37.net中读写数据库需要用到哪些类?以及作用

答:这个类自已可以写的啊,你是指基类吗?那configuration 读取配置文件连接字符串

connection连接对象

DataReader向前只读的数据流。

Command 命令对象,执行SQL命令与存储过程

DataAdapadte功能强大的适配器,支持增删改查的功能

DataSet是数据集对象,相当与内存中的数据库,还可存放表这间的关系

38.什么是SOAP,有哪些应用。

答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息。常用在web服务,WCF等应用中.

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

(1)可以从浏览器、ASP页或其他WEB服务调用可以使用HTTP-GET   HTTP-POST访问WEB服务也可以从ASP页或其他

(2)WEB服务向其他WEB服务发出SOAP请求HTTP-GET   HTTP-POST  SOAP  使用WEB服务代理

40.私有程序集与共享程序集有什么区别?

一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。

41请解释进程与线程的区别?进程与程序的区别?

一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在*作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用程序分配处理时间的最小单元。 

42. CLRIL分别是什么含义?

CLR:公共语言运行时,类似于Java中的JVM,Java虚拟机;在.Net环境下,各种编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与*作系统进行通信,而编程语言如C#.NET将尽量避免直接与*作系统直接通信,加强了程序代码的执行安全性,可以这样看:CLR就是具体的编程语言,如:C#.NET与*作系统之间的翻译,同时它为具体的编程语言提供了许多资源,编程语言第一次编译会生成IL,IL的运行要依赖CLR。

IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。

43.什么叫做SQL注入,如何防止?请举例说明。

利用sql关键字对网站进行攻击。过滤关键字'等 

所谓SQL注入(SQL Injection),就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取想得到的资料。目前防止的主要思路是对输入的内容进行验证。

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

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];

44.net身份验证模式有哪些?

form ,Windows ,passport(护照),none

45.什么是反射

在运行中得到程序集的信息(包类型,及成员,反射提供了封装程序集、模块和类型的对象。)反射:在运行时找到有关对象、对象的类,方法和变量等信息。 System.Reflection 

ORM  O/R mapping 对象关系映射。

46.能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类型。

47.c#中的三元运算符是   ? :  

48.类成员有  4  种可访问形式?

 private   私有的成员类公为类自己内部使用

Protected  收保护的成员,自己类和继承类使用

Public  共开类,为使用类共用

internal   在同一命名空间中使用

49.public static const int A=1;这段代码有错误么?是什么? 

const成员都是static,所以应该去掉static

50.float f=-123.567F;  int i=(int)f;

i的值现在是_-123____?

51.利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="

52.委托声明的关键字是___ delegate ___

53.Asp.net中所有的自定义用户控件都必须继承自_ System.Web.UI.UserControl

54..Net中所有可序列化的类都被标记为__[serializable]___.

55..Net托管代码中我们不用担心内存漏洞,这是因为有了_ gC __?

56.下面的代码中有什么错误吗?

using System;

class A

{

public virtual void F(){

Console.WriteLine("A.F");

}

}

abstract class B:A

{

public abstract override void F();

}

abstract 、你 是不可以一起修饰

57.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以 or 不可以)从T派生出新的类,_不可以_(可以 or 不可以)直接创建T的任何实例。

58.下面这段代码有错误么?

switch (i){

case():CaseZero();break;

case 1:CaseOne();break;

case 2:dufault;CaseTwo();break;

}

case():不行 default;

59..Net中,类System.Web.UI.Page 可以被继承么?可以

60. 不定项选择:

(1) 以下叙述正确的是: B C

B 一个类可以实现多个接口;C接口不能被实例化。

(2) 从数据库读取记录你可能用到的方法有:B C D

 B. ExecuteScalar C. Fill

 D. ExecuteReader

61.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选)   (ABC)   

  A.Close     B.Dispose    C.Finalize   

62.以下关于refout的描述哪些项是正确的?(多选)   (ACD)   

A.使用ref参数,传递到ref参数的参数必须最先初始化。   

C.使用ref参数,必须将参数作为ref参数显式传递到方法。   

D.使用out参数,必须将参数作为out参数显式传递到方法。 

63.在对SQL Server 数据库操作时应选用(A)。

a)SQL Server .NET Framework 数据提供程序;

64.下列选项中,C是引用类型

a)enum类型 b)struct类型 c)string类型   d)int类型

65.关于ASP.NET中的代码隐藏文件的描述正确的是(C) 

c)项目中所有的Web窗体页的代码隐藏文 件都被编译成项目动态链接库(.dll)文件。

66.以下描述错误的是(A)

a)在C++中支持抽象类而在C#中不支持抽象类。

b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

67.C#的数据类型有(B) b)值类型和引用类型; 

68.下列描述错误的是(D)

a)类不可以多重继承而接口可以;

b)抽象类自身可以定义成员而接口不可以;

c)抽象类和接口都不能被实例化;

d)一个类可以有多个基类和多个基接口;

69.DOM中,装载一个XML文档的方法(D)

 b)load方法  d) loadXML()方法 

70.下列关于构造函数的描述正确的是(C)

c)构造函数必须与类名相同

71.以下是一些C#中的枚举型的定义,其中错误的用法有(D)

a)public enum var1{ Mike = 100, Nike = 102, Jike }

b)public enum var1{ Mike = 100, Nike, Jike }

c)public enum var1{ Mike=-1 , Nike, Jike }

d)public enum var1{ Mike , Nike , Jike }

72.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(D)。

a)9      b)2   c)6      d)越界

73.接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的成员变量。

a)方法、属性、索引器和事件;

b)方法、属性信息、属性; 

c)索引器和字段;    d)事件和字段;

74.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(A )      a)HTML控件和Web控件

75.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( D)

a)<%@Register TagPrefix = “Mike” TagName = “Space2” Src = “myX.ascx”%>

b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%>

c)<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = “Mike”%>

d)以上皆非

76.ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

d)ExecuteReader()方法返回一个DataReder对象;

77.下列ASP.NET语句b正确地创建了一个与SQL Server 2000数据库的连接。

b)SqlConnection con1= new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial

Catalog = myDB”);

78.Winform中,关于ToolBar控件的属性和事件的描述不正确的是(D)。

a)Buttons属性表示ToolBar控件所有工具栏按钮

b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度

c)DropDownArrows属性表明工具栏按钮(按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键

d)ButtonClick事件在用户单击工具栏任何地方时都会触发

79.ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和B ,必要时还要设置参数尺寸。

a)大小;             b)上限;              

c)初始值;            d)类型;

80.如果将窗体的FormBoderStyle设置为None,则( B)。     

b)窗体没有边框但能调整大小; 

81.如果要将窗体设置为透明的,则( B)

b)要将Opacity属性设置为小于100%得值; 

82.下列关于C#中索引器理解正确的是(B/C )

   b)索引器的参数类型必须是整数型

c)索引器没有名字                

83.下面描述错误的是( C/D)

a)窗体也是控件; b)窗体也是类; 

84.要对注册表进行操作则必须包含( D)。

a)System.ComponentModel命名空间; b)System.Collections命名空间;

c)System.Threading命名空间;      d)Microsoft.Win32命名空间;

85.要创建多文档应用程序,需要将窗体的(D)属性设为true     d)IsMdiContainer;

86.如果设treeView1=new TreeView(),则treeView1.Nodes.Add("根节点")返回的是一个 (a)类型的值

a)TreeNode;b)int;c)string;d)TreeView;

87.下面关于XML的描述错误的是(D)。

a)XML提供一种描述结构化数据的方法;

b)XML 是一种简单与平台无关并被广泛采用的标准;      c)XML文档可承载各种信息; 

88.装箱、拆箱操作发生在: (  C  )

C.引用类型与值类型之间   

89.用户类若想支持Foreach语句需要实现的接口是: (  A  )

A.IEnumerable         B.IEnumerator

C.ICollection         D.ICollectData

90.Net Framework通过什么与COM组件进行交互操作?(   C )

A.Side By Side          B.Web Service

C.Interop               D.PInvoke

91.Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( A   )

A.Side By Side         B.Interop

C.PInvoke              D.COM+

92.装箱与拆箱操作是否是互逆的操作?(  B  )

A.是        B.否

93.以下哪个是可以变长的数组?(  D  )

A.Array                      B.string[]

C.string[N]                  D.ArrayList

94.用户自定义异常类需要从以下哪个类继承:(A )

A.Exception                      

95.以下代码段中能否编译通过?请给出理由。

try

{  }

catch(FileNotFoundException e1)

{  }

catch(Exception e2)

{  }

catch(IOException e3)

{  }

catch

{  }

可以通过,因为try块中没有东西,所以直接跳过catch;如果try块中有东西也不要紧,catch块一个个执行……

96.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) (   ABC)

A.Close  B.Dispose  C.Finalize  D.using    

97.Net依赖以下哪项技术实现跨语言互用性?(C )   C.CLS                

98.请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?

 如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。 

99.以下哪个类是int的基类?(  A  )

A.Int32         D.Int16

二、C# 部分*

100.以下哪些可以作为接口成员?(多选) ( ABDE )

A.方法 B.属性   C.字段   D.事件   E.索引器

F.构造函数    G.析构函数

101.以下关于refout的描述哪些项是正确的?(多选) (   ACD     )

A.使用ref参数,传递到ref参数的参数必须最先初始化。     

C.使用ref参数,必须将参数作为ref参数显式传递到方法。    

 D.使用out参数,必须将参数作为out参数显式传递到方法。

102.“访问范围限定于此程序或那些由它所属的类派生的类型是对以下哪个成员可访问性含义的正确描述?(  B   )

A.public           B.protected

C.internal         D.protected internal

 

103.class Class1

{

    private static int count = 0;

    static Class1()

    {  count++;  }

    public Class1()

    { count++;  }

}

Class1 o1 = new Class1();

Class1 o2 = new Class1();

请问,o1.Count的值是多少?(  C  )

A.1   B.2       C.3        D.4

104.abstract class BaseClass

{    public virtual void MethodA(){    }

     public virtual void MethodB(){    }

}

class Class1: BaseClass

{   public void MethodA(string arg) {    }

    public override void MethodB(){    }

}

class Class2: Class1

{    new public void MethodB(){    }

}

class MainClass

{    public static void Main(string[] args)

    {

        Class2 o = new Class2();

        Console.WriteLine(o.MethodA());

}}

请问,o.MethodA调用的是: (  A  )

A.BaseClass.MethodA   B.Class2.MethodA

C.Class1.MethodA      D.都不是

105.请叙述属性与索引器的区别。                   

 属性:a. 属性通过名称标识。b. 属性通过简单名称或成员访问来访问。c. 属性可以为静态成员或实例成员。d.属性的  get访问器没有参数。e. 属性的 set访问器包含隐式value参数。

索引器 :a. 索引器通过签名标识。 b. 索引器通过元素访问来访问。  c. 索引器必须为实例成员。 d.索引器的get访问器具有与索引器相同的形参表。e.除了value 参数外,索引器的 set访问器还具有与索引器相同的形参表。 

106.请叙述constreadonly的区别。

const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。 const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。

   readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。  readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的构造函数里面。 

107.您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。所有的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:a 匿名用户不允许访问这个应用程序。b 所有雇员除了TessKing都允许访问这个应用程序。请问您应该使用以下哪一个代码段来配置这个应用程序?(  B  )

A. <authorization>

 <deny users=”allwin\tess, allwin\king”>

 <allow users=”*”>

 <deny users=”?”>

 </authorization>

B. <authorization>

  <allow users=”*”>

  <deny users=”allwin\tess, allwin\king”>

  <deny users=”?”>

 </authorization>

C. <authorization>

<deny users=”allwin\tess, allwin\king”>

   <deny users=”?”>

   <allow users=”*”>

 </authorization>

D. <authorization>

 <allow users=”allwin\tess, allwin\king”>

   <allow users=”*”>

 </authorization>

E.<authorization>

 <allow users=”*”>

 <deny users=”allwin\tess, allwin\king”>

 </authorization>

108.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个GridFooter显示员工合计数。请问您应该怎么做?(  C?  )

 C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。

109.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)(  CD   )

C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。

D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。

110.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWinSQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?(  B  )

B. “Server= AllWin;Data Source=PubBase;

Database=Test;Integrated Security= SSPI”

111.您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个 Xml Web Service。这个 Xml Web Service 将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个 Xml Web Service( B   )

 B.在“Web引用”对话框中输入这个 XML Web service 的地址。

112.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBaseMicrosoft SQL Server 数据库。每个产品的主键是ProductIDNumeric型并且每个产品有一个字母描述字段,名为ProductName。您使用一个SqlDataAdapter对象和一个SqlCommand对象通过调用一个存储过程从数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为procProductList。您成功的获取了一个DataTable对象,其中是已经按ProductID降序排列的产品列表。您打算显示以相反的字母顺序排列的ProductName,请问该怎么做? (  B  )

A. 将SqlCommand对象的CommandType属性修改为CommandType.Text,将CommandText属性修改为”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后将这个DataTable对象绑定到DataGrid控件。

B. 创建一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductNameDESC”。然后将这个DataView对象绑定到DataGrid控件。

C. 将DataGrid控件的AllowSorting属性设置为True,并将DataGridColumn的SortExpression属性设置为“ProductName DESC”.以显示ProductName。然后将这个DataTable对象绑定到DataGrid控件。

D. 将DataTable对象的DisplayExpression属性设置为 “ORDER BY ProductName DESC”.。然后将这个DataTable对象绑定到DataGrid控件。

113.在下面的例子里

using System;

class A

{

public A(){

PrintFields();

}

public virtual void PrintFields(){}

}

class B:A

{

int x=1;

int y;

public B(){

y=-1;

}

public override void PrintFields(){

Console.WriteLine("x={0},y={1}",x,y);

}

当使用new B()创建B的实例时,产生什么输出?X=1,Y=0

114.下面的例子中

using System;

class A

{public static int X;

static A(){

X=B.Y+1;}}

class B{

public static int Y=A.X+1;

static B(){}

static void Main(){

Console.WriteLine("X={0},Y={1}",A.X,B.Y);

}

}

产生的输出结果是什么?

x=1,y=2

115.请详述在dotnet中类(class)与结构(struct)的异同:(10分)   

  Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.       

116.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10)     

  namespace   test   

  {   

  public   delegate   void   OnDBOperate();   

  public class UserControlBase   :   System.Windows.Forms.UserControl     

  {   

  public   event   OnDBOperate   OnNew;

privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs   e)   

  {   

  if(e.Button.Equals(BtnNew))   

  {  //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。                                                        }   

  }   

  }   

  }   

答:if( OnNew != null )

OnNew( this, e );   

117.分析以下代码,完成填空(10分)   

string   strTmp   =   "abcdefg某某某";   

int i=System.Text.Encoding.Default.GetBytes

 (strTmp).Length; int   j=   strTmp.Length;   

  以上代码执行完后,i= j= ?                             

i=13,   j=10      

 

118.SQLSERVER服务器中,给定表   table1   中有两个字段   IDLastUpdateDateID表示更新的事务号,  LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。 

  select   top   ID   from   table1   order   by   LastUpdateData   desc  

 

三.Web基础知识(HTMLXMLCSS基础语法)

1HTML/XML规范中,元素结束标签是以尖括号括起来,并以/还是\开头再加上元素名称?即body的结束标签是</body>还是<\body>?

</body>   

2、符合XHTML规范的文档一定符合XML规范吗?XSLHTML的文档呢?

XHTML和XSL都必然符合XML规范,HTML不符合。

3XML规范中,第一行必须是<?xml… 还是<!xml… 开头?           <?xml

4、一个HTML文档必须包含三个元素,它们是headbody和哪个?      html

5HTML中文档内联注释应该是以<!-开头还是<!--或者<?-,又以什么结尾?   <!--和-->

6Javascript脚本必须写在什么标签之内。

<script>

7FireFox浏览器是否支持VBScript脚本?

不支持

8、我们现在使用的IE的版本一般是多少,IE的英文全称是什么?   Internet   Explorer

9CSS规范中,每一条样式的结束符是;(分号)还是: (冒号) ?样式名与样式值之间的分隔符是:(冒号)还是=(等号) 

;,:和=都可以

10CSS规范中,(句点)后面跟一个名称代表什么含义?#(井号)后面跟一个名称代表什么含义?如果要对一个元素设置CSS样式,应将CSS样式写在它的什么属性内?

后面跟个名称表示文档中所有class属性值包含这个名称的应用其后样式,#后面跟个名称表示文档中ID为此名称的元素应用其后样式。

四、C#语法考察

1delegate是引用类型还是值类型?enumint[]string呢(难度系数40%)?

delegate引用类型,enum值类型,int[]引用类型,string引用类型。

2、我们知道new可以调用构造函数创建一个对象,那么new还有什么别的语法吗?

隐藏基类相同签名方法,如果在C# 2.0中则还作为泛型构造函数约束。

3base这个关键字有哪几种语法?override呢?

base两个语法,分别是调用基类构造函数和调用基类方法,override用于重写基类方法。

4、请指出C#中是否有下列关键字?virtualsealedabstractimportasingotofinalConstsignedString(提示,仅指出C#中没有的即可)(难度系数50%)。

没有的关键字:import、final、Const、signed、String

5、在循环:for( int i = 0; i < 100; i++ ) Console.WriteLine( i );中,请指出i++的执行时机。

在Console.WriterLine( i );执行之后

6、试说明continue关键字的用处。

马上开始下一次循环,忽略循环体余下的语句

7objectC#的关键字吗?请指出C#中有哪些类型关键字,如intfloat。(提示,写得越多越好)。

是,object、int、uint、long、ulong、short、ushort、byte、sbyte、char、float、double、decimal、bool,如回答:enum、struct、class、delegate也算对。

8C#XML文档注释中(以///开头的注释),<summary>标签用于描述什么?<param>标签呢?

<summary>用于某个元素的概要说明,<param>用于某个方法的参数概要说明。

9、我们知道[]是数组和索引器的访问操作符,但它还有一个语法,是什么?

特性(Attribute)

五、Web进阶知识(javascriptDOMCSS进阶):

1、试图说明setTimeoutsetInterval的不同。

setTimeout在经过指定时间后执行一次,setInterval则是经过指定时间就执行一次。

2、请指出body是什么元素的属性,alert是什么元素的方法。

window.document、window

3onblur事件在什么时机被触发?onmouseover事件当鼠标在元素上移动时是仅触发一次还是连续触发?那么onmouseout呢?

onblur在控件失去焦点时触发,onmouseover是连续触发,onmouseout仅触发一次。

 

4、在CSSa:hovera:link各表示什么意思?aA是否有不同?XHTML规范要求所有标签名称必须大写还是小写?属性名称呢?

a:hover表示当鼠标放在连接上时,连接该使用什么样式,a:link表示正常情况下连接该使用什么样式,在现行的CSS标准中不区分大小写,所以a与A没有不同。XHTML要求所有的标签名和属性名都必须小写。

5、在<form>中的元素不能在脚本中直接用元素ID来访问,这个时候我们一般用document的一个方法来获取这个元素。这个方法是:

getElementById,getElementByID,getElementById、getNodeById、getNodeByID、GetNodeById。

6、由于classjavascript中的保留字,所以元素的class属性在javascript中没有用class这个名称,那么是用什么名称来代替的?

className

7、如何简单的使一个变量的值为NaN

a = 1/0;

8、试说明parentopener属性各代表什么?

parent代表父框架,opener代表打开这个窗口的窗口

9、指出border-style样式在javascript应如何访问?

element.style.borderStyle

10、指出divspan的不同。

默认的display样式不同,div是block而span是inline;

.NET Framework 2.0/C# 2.0语法知识考察,C#高级语法考察(泛型及泛型技巧、匿名方法及其技巧)

1、看函数代码,然后回答问题(难度系数80%):

public static T[] SomeMethod<T>( T value, int size )

{

  T[] arr = new T[size];

  for ( int i = 0; i < size, i++ )

    arr[i] = value;

  return arr;

}

试阐述这个函数的作用。

请问,这样调用这个函数有没有问题,如有问题,有何问题?

long[] result = SomeMethod( 1, 20 );

2、看代码,然后指出在各种调用中返回值为何种类型(难度系数85%):

  public class MyClass<K, V>

  {  public V this[K key]

    { get

      {

throw new NotImplementedException();

      }

    }

  }

  

  public class MyClass

  { public static T[] MyMethod1<T>( T arg )

    { throw new NotImplementedException();

    }

    public static K MyMethod2<K, V>( V value, MyClass<K, V> dictionary )

    {throw new NotImplementedException();

    }

  }

MyClass<int, string> instance = new MyClass< int, string >();

??? result = MyClass.MyMethod1 ( MyClass.

MyMethod2( instance[0], instance ) );

//请指出返回类型:  T[]

3、看代码,然后指出在各种调用中返回值为何种类型(难度系数90%):

public class MyClass<K, V>

{

  public V this[K key]

  {

    get

    {

      throw new NotImplementedException();

    }

  }

}

public class MyClass

{

  public static MyClass<V, K> MethodA<K, V>( MyClass<K, V> dictionary )

  {

    throw new NotImplementedException();

  }

  public static MyClass<MyClass<T, V>, K> MethodB<K, V, T>( MyClass<K, V> dictionary, T[] arg )

  { throw new NotImplementedException();

  }

public static MyClass<K, V[]> MethodC<K, V>( MyClass<K, V> dictionary )

  { throw new NotImplementedException();

  }

}

??? obj = MyClass.MethodA( MyClass.MethodB(

instance, MyClass.MethodC(instance)[0]))[0];

//请指出返回类型。

4.将手机号转化为由随机字母表示?

static void Main(string[] args)

{

String word = "abcdefghijklmnopqrstuvwxyz";

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

{

int a= getphone(getphone(i-1));

Console.Write(word.Substring(a,1));

}

}

//create random

static int getphone(int seed)

{Random rand = new Random(seed);

int a = rand.Next(0, 25);

return a;

}

static void Main(string[] args)

{String word = "abcdefghijklmnopqrstuvwxyz";

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

{

int a= getphone(getphone(i-1));

Console.Write(word.Substring(a,1));

}

}

//create random

static int getphone(int seed)

{

Random rand = new Random(seed);

int a = rand.Next(0, 25);

return a;

}

5.描述数据适配器中的多表查询?

6.调用存储过程及返回值的提取?

7.SQL中游标的定义?

8.ASP.NET,用手工的形式对字段进行数据绑定及分页方法?

9.有一人事表,计算两个同时入职的员工的生日的差,用一句 SQL语句 EGTB1中的结果变成EGTB2的结果?

Field_AField_BField_C

User12004-10-261981-01-01

User22004-10-261976-01-01

………

Field_B Name_1Name_2Field_4

2004-10-26User1User21825

…………

10.看以下两张表,回答下列问题?

产品表

ProductID 产品名 单价

1          name1   110

2          name2   220

3          name3   330

4          name4   440

___________________________________________

销售计划表

ProductID 客户名  订货数量  销售单价

2          m            2        250

1          n            3        110

3          n            1        300

4          m            2        400

  1. .是否能删除产品表中的name2?请说明理由与过程。

1、不能删除name2的产品。因为数据库外键约束默认情况:销售计划表有name2ProductID=2,是不能删除的。除非你在销售计划表删除所有产品名为name2的元组,否则是不能删除产品表name2的产品。
当然,你在建销售计划表时建外键有以下声明:
foreign key(ProductID) references 产品表(ProductID) on  delete cascade on update cascade ,结果是不一样的。不过估计你没有这样声明。

 

  1. .将销售计划表中m客户的产品名为name2的销售单价更换为产品表中相应的单价

 update 销售计划表 set
 销售单价=
(select 单价 from 产品表 where 产品 表.ProductID=ProductID limit 1)
 where 客户名=m and ProductID in(select ProductID from
 产品表  where 产品名=name2);

 

  1. .求销售计划表中各客户各自的销售总金额的sql语句

select 客户名,sum(销售单价*订货数量) from 销售计划表 group by 客户名

 

(4).求客户中销售总量最大的销售总金额的客户的sql语句

(5).什么是事务(transaction)?它有什么好处。

(6).update table2...数据库为默认设置能不能开始事务?为什么。

(7).B/S系统一般分为几层?请说明理由.

(8).说说ADO.NET中几个数据库处理的核心对象。

 

 

.逻辑选择题

1.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?

public void test(int i)

{

lock(this)

{

if (i>10)

{

i--;

test(i);

}

}

}

a. 会锁死

b. 不会锁死

2.以下描述错误的是()

a. 在C++中支持抽象类而在C#中不支持抽象类。

b. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

c. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

d. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

3.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是()。

  a. 9  b. 2  c. 6  d. 越界

4C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( B)、利用Socket接收和发送数据。

a. 建立Socket连接    b. 获得端口号;

c. 获得IP地址;      d. 获得主机名;

5如果设treeView1=new TreeView(),TreeNode node=new TreeNode("根结点" ),则treeView1.Nodes.Add(node)返回的是一个 (d)类型的值。

a. TreeNode;     b. int;

c. string;     d. TreeView;

6.声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是b

a.void myCallBack(int x)

b.int receive(int num)

c. string receive(int x)  d. 不确定的

9.关于ASP.NET中的代码隐藏文件的描述正确的是c

a. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件

  b. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件

  c. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件

  d. 以上都不正确

10.What compiler switch creates an xml file from the xml comments in the files in an assembly?

  a. /text   b. /doc

  c. /xml    d. /help

11.下面的代码实现了设计模式中的什么模式

  public class A {

  private A instance;

  private A() {

  }

  public static A Instance {

  get

  {

  if ( A == null )

  A = new A();

  return instance;  }  }

  }

   1. Factory   2. Abstract Factory

   3. Singleton   4. Builder

12. 看代码回答问题

class Class1

{

public static int Count = 0;

static Class1()

{

Count++;

}

public Class1()

{

Count++;

}

}

Class1 o1 = new Class1();

Class1 o2 = new Class1();

请问,Class1.Count的值是多少?( )

   a. 1   b. 2   c. 3   d. 4

13.看代码回答问题

abstract class BaseClass

{public virtual void MethodA()

{Console.WriteLine("BaseClass");

}

public virtual void MethodB()

{}

}

class Class1: BaseClass

{

public void MethodA()

{Console.WriteLine("Class1");

}

public override void MethodB()

{}

}

class Class2: Class1

{

new public void MethodB()

{}

}

class MainClass

{

public static void Main(string[] args)

{Class2 o = new Class2();

o.MethodA();

}

}

  请问,此程序输出结果是:

   a. BaseClass

   b. BassClass Class1

   c. Class1

   d. Class1 BassClass

14. 看代码回答问题

public static void Main (string[] args)

{

int i = 2000;

object o = i;

i = 2001;

int j =(int) o;

Console.WriteLine("i={0},o={1}, j={2}",i,o,j);

}

   a. i=2001,o=2000,j=2000

   b. i=2001,o=2001,,j=2001

   c. i=2000,o=2001,,j=2000

   d. i=2001,o=2000,j=2001

15.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)

   a. 在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。

   b. 在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。

   c. 在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。

   d. 在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。

16.如下程序的运行结果是:

public abstract class A

{

public A()

{

Console.WriteLine('A');

}

public virtual void Fun()

{

Console.WriteLine("A.Fun()"); }

}

 

public class B: A

{

public B()

{ Console.WriteLine('B');

}

public new void Fun()

{ Console.WriteLine("B.Fun()");

}

 

public static void Main()

{

A a = new B();

a.Fun();

}

}

   a. A B A.Fun()    b. A B B.Fun()

   c. B A A.Fun()   d. B A B.Fun()

17.Which of these string definitions will prevent escaping on backslashes in C#?*

   a. string s = #”n Test string”;

   b. string s = “’n Test string”;

   c. string s = @”n Test string”;

   d. string s = “n Test string”;

18.Which of the following operations can you NOT perform on an ADO.NET DataSet?

   a. A DataSet can be synchronised with a RecordSet.

   b. A DataSet can be synchronised with the database.

   c. A DataSet can be converted to XML.

   d. You can infer the schema from a DataSet

19.In Object Oriented Programming, how would you describe encapsulation?

   a. The conversion of one type of object to another.

   b. The runtime resolution of method calls.

    c. The exposition of data.

  d. The separation of interface and implementation.

 

20.How does assembly versioning in .NET prevent DLL Hell?

   a. The runtime checks to see that only one version of an assembly is on the machine at any one time.

   b .NET allows assemblies to specify the name AND the version of any assemblies they need to run.

   c. The compiler offers compile time checking for backward compatibility.

   d. It doesn’t.

21.三种常用的字符串判空串方法:

   1: bool isEmpty = (str.Length == 0);

   2: bool isEmpty = (str == String.Empty);

   3: bool isEmpty = (str == "");

  哪种方法最快?

   a. 1   b. 2   c. 3

22. 看代码回答问题

public sealed class SampleSingleton1

{

private int m_Counter = 0;

  private SampleSingleton1()

{

Console.WriteLine(""初始化SampleSingleton1。"");

}

 

public static readonly SampleSingleton1 Singleton = new SampleSingleton1();

public void Counter()

{m_Counter ++;}

}

以上代码实现了设计模式中的哪种模式?

   a. 原型   b. 抽象工厂

   c. 单键   d. 生成器

23<%# %>  <% %> 有什么区别?

<%# %>表示绑定的数据源

<% %>是服务器端代码块

24.以下代码能否通过编译?如果不能,请改成正确代码,并说明原因。

 

 

 

 

25.通过Web Site Administration Tool (in VS2005) 可以实现哪些功能?Web Site Administration Tool 会自动对哪些文件进行修改或添加?

 

 

 

26.解释一下带 “original_” 前缀的Data Parameter和不带前缀的Data Parameter有什么异同。(可用简单的代码说明)

 

 

 

27.修改下面的代码段,使GridViewUpdate数据

窗体顶端

DataSourceID="SqlDataSource1" DataKeyNames="id" AutoGenerateColumns="False">

SelectCommand="SELECT [id], [lname], [fname] FROM [authors]"

ConnectionString="" />

窗体底端

 

 

 

28GridView没有内置Insert 数据的功能,如果想在GridViewInsert数据,你有什么想法?

 

 

 

29ASP.NET 2.0 哪个(些)特性是你觉得最激动人心的?为什么?(也可以谈C2.0

ASP.NET 2.0相对于1.1突出了3大理念,

1,提高生产力

A 一致性(masterpage)    B 会员管理

C 资料存取              D 个性化

2 管理能力的提高(例如WEB.CONFIG)

3 提升效能,满足更多人的访问

30.你觉得ASP.NET 2.0VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2.0 (或者已经内嵌在ASP.NET 2.0)

1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.

2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,

3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢

4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者

5, 在ASP.NET中增加了40多个新的控件,减少了工作量

31.重载与覆盖的区别

1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。

2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。

3、覆盖要求参数列表相同;重载要求参数列表不同。

4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。

.简答题

1.c#usingnew这两个关键字有什么意义,请写出你所知道的意义?

Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New 实例化一个对

像,或修饰一个方法,表此方法完全重写此方法,

2.在下面的例子里

using System;

class A

{

public A(){

PrintFields();

}

public virtual void PrintFields(){}

}

class B:A

{

int x=1;

int y;

public B(){

y=-1;

}

public override void PrintFields(){

Console.WriteLine("x={0},y={1}",x,y);

}

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

X=1,Y=0

3.下面的例子中

using System;

class A

{

public static int X;

static A(){

X=B.Y+1;

}

}

class B

{

public static int Y=A.X+1;

static B(){}

static void Main(){

Console.WriteLine("X={0},Y={1}",A.X,B.Y);

}

}

产生的输出结果是什么?

x=1,y=2

4.谈谈类和结构的区别?

5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程

序来实现。

using System.Text;

StringBuilder sb = new StringBuilder(0, 10000);

string strABC ="a,b,c,d,e,f,g,h,i,j,k,l,m,n,

 o,p,q,r,s,t,u,v,w,x,y,z";

 string[] ABC = strABC.Split(',');

int len = ABC.Length;

Random rd = new Random();

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

{

sb.Append(ABC[rd.Next(len)]);

}

6.对于这样的一个枚举类型:

enum Color:byte{Red,Green,Blue,Orange}

试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。

usingSystem;enumColor:byte{Red,Green,Blue,Orange}

classProgram

{

staticvoidMain()

{

string[]ss=Enum.GetNames(typeof(Color));

byte[]bb=(byte[])Enum.GetValues(typeof(Color));

for(inti=0;i<ss.Length;i  )

{

Console.WriteLine("{0,10}:{1}",ss[i],bb[i]);

}

}

}

/*程序输出:Red:0Green:1Blue:2Orange:3*/

7.您了解设计模式么?请列出您所知道的设计模式的名称。

1.工厂模式    2.建造者模式   3.工厂方法模式

4.原始模型模式  5.单例模式   6.访问者模式

7.模版方法模式  8.策略模式   9.状态模式

10.观察者模式  11.备忘录模式 12.迭代子模式

…………

8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容

需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?

 

 

 

 

 

9.下面这段代码输出什么?为什么?

int i=5;

int j=5;

if (Object.ReferenceEquals(i,j))

Console.WriteLine("Equal");

else

Console.WriteLine("Not Equal");

 

A类题

1. Visual Studio.NET 有几个集成开发环境?(A)

○ A.一个 ○ B.两个 ○ C.三个 ○ D.四个

2. 我们称.NET编程架构是什么?(A)

○ A..NET Framework ○ B.VS.NET ○ C.XML Web Service ○ D. 开发工具

3 以下那些标准是与Web Service相关的(AB)

A..SOAP ○ B. WSDL ○ C.UDDI ○ D. 以上都是

4 SOAP标准是谁来制定的?(B)

○ A. Microsoft ○ B. W3C ○ C.IBM ○ D. SUN

5. Visual Studio.NET 会支持多少种开发语言(D)

○ A. 两种 ○ B. 三种 ○ C.四种 ○ D. 多种

6 ASP.NET 是用来开发何种应用的?(C)

○ A. Windows应用 ○ B. .NET组件类 ○ C. Web应用 ○ D. 命令行应用程序

7 C#编译器将C#程序编译成什么样的代码?(C)

A. 汇编语言代码        B. 机器语言代码

C. 微软中间语言代码    D. 二进制代码

B 类题

8. 所有的.NET基类库是用什么语言编写的?(B)

○ A. C++ ○ B. C# ○ C. VB.NET ○ D. 汇编

9 什么语言提供了对XML注释的支持?(B)

○ A. C++ ○ B. C# ○ C. VB.NET ○ D. Jscript

10. 微软中间语言,下面什么说法错误?(A)

A. 它是解释执行的。

B. 在执行时,它被转化为机器代码。 

C. 它是处理器无关的指令集。

D. 它允许真正的跨语言集成。

11.ASP.NETASP相比较下列哪个是不正确的(B)

A. 支持更多编程语言

B. 可以同时存在于一个应用程序里 

C. 用户界面和代码分离,大大提高编程质量

D. 都支持页面级和应用程序级的跟踪调试

12 关于VB.NET,与C#(发音,C sharp)比较,下列哪项是不正确的?(D)

A. 都是类型安全的编程语言。

B. 都支持自动垃圾收集。

C. 都是面向对象的语言。

D. VB.NET不支持API调用。

13. 微软在VS.NET默认安装中提供了几种编程语言的开发环境?(C)

A. 2 种  B. 3种  C. 4种  D. 5种 

#1  C#面试题之基础实战

1.C#中,string str = null  string str = “” 请尽量使用文字或图象说明其中的区别。

回答要点:说明详细的空间分配。(10)

答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间.

2.请详述在dotnet中类(class)与结构(struct)的异同:(10)

答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

3.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。(10分)

public void test(int i)

{  lock(this)

{if (i>10)

{

i--;

test(i);

}

}

}

答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int,换做一个object,那么死锁会发生)

4.分析以下代码。(10)

Public static void test(string ConnectString)

{

System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();

conn.ConnectionString = ConnectString;

try

{conn.Open();

…….

}catch(Exception Ex)

{ MessageBox.Show(Ex.ToString());

}finally

{if(!conn.State.Equals(ConnectionState.Closed))

conn.Close();

}

请问

1)以上代码可以正确使用连接池吗?

答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。

2)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?

答:只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕捉。)

5.简要谈一下您对微软.NET 构架下remotingwebservice两项技术的理解以及实际中的应用。

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

6.公司要求开发一个继承System.Windows.Forms.

ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:(10)

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中

7.给定以下XML文件,完成算法流程图。(10)

<FileSystem>

< DriverC >

<Dir DirName=”MSDOS622”>

<File FileName =” Command.com” ></File>

</Dir>

<File FileName =”MSDOS.SYS” ></File>

<File FileName =” IO.SYS” ></File>

</DriverC>

</FileSystem>

请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

答:void FindFile( Directory d )

{  FileOrFolders = d.GetFileOrFolders();

  foreach( FileOrFolder fof in FileOrFolders )

{   if( fof is File )

        You Found a file;

   else if ( fof is Directory )

         FindFile( fof );

    }

}

简单的说就是从根节点开始遍历找子节点,在从找到的子节点找它的子节点,一层层下去

 

8.Params是什么含义?    

Params是C#中的关键字,采用此关键字可以指定参数数目为可变;在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

如:

public int fConvert(params int[] iParas)

{   … }

9.C#中有没有运算符重载?能否使用指针?

有,C#中也有运算符重载,如对运算符“+”进行重载;C#中也可以使用指针,但要声明为unsafe。

10.C#中有很多类被定义为public有什么意义?

C#中很多类被定义为public 表示当前类的外部对于当前类的访问没有任何限制。

11. Internal修饰符有什么含义?

internal数据访问修饰符,表示对所修饰的成员在当前程序集内可以进行没有任何限制的访问;但在当前程序集外部则不能进行访问,其可访问性级别低于public ,高于protected。

12. JAVA的代码是半编译半解释的C#的代码是否也是这样?

C#中对于程序代码的处理很类似于Java中的程序代码处理机制;也可以称作半编译半解释,具体为:所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。

13.私有程序集与共享程序集有什么区别?

一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。

14.请解释进程与线程的区别?进程与程序的区别?

一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在*作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用程序分配处理时间的最小单元。

15. CLRIL分别是什么含义?

CLR:公共语言运行时, 

IL到本地代码(IL-to-native)转换器和优化器

16. 对象能否调用静态方法

不能。对于类内部定义的静态变量及静态方法,该类的对象均不能调用。 

17.什么是ASP.net中的用户控件?

用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.

18.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTSCLSCLR分别作何解释

用程序域:程序代码的作用范围,尤其是变量的,

受管制的代码:托管代码是为面向公共语言运行库的服务编写的代码,

强类型系统:变量类型分得比较多,赋值前就知道类型.

装箱就是把引用类型(包括int与结构这样的内置类型)转换为object类型,拆箱就是把object类型转换为引用类型,装箱与拆箱实现了,实现了两种类型的互换.

重载是相同名称的方法,具有相同的返回值,但是去有不同的参数与具体实现.

CTS公共类型系统,.net支持的语言使用相同的数据类,CLS公共语言系统,实现多种语言

CLR公共语言运行时,多种语言程序运行的引擎.

19列举一下你所了解的XML技术及其应用

    1. xml可以用来做网页(xslt)

    2. xml可以当作数据库 xml可以用来保存对象的系列化(web服务好象是基于这个的)

      20.值类型和引用类型区别?写出C#的样例代码。

      结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的

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

      connection command sqladapter dataset datatable dataview

      22.C#中的接口和类有什么异同。

      接口,是可以多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似

      23.net中读写数据库需要用到哪些类?他们的作用

      configuration,sqlconnection,sqlcommand

      24.UDP连接和TCP连接的异同。

      UDP 传输速度快但不安全

      TCP 传输速度相比UDP而言慢一些 但是安全

      25.活动目录的作用。

      安装了活动目录的计算机称为“域控制器”,对于用户而言,只要加入并接受域控制器的管理就可以在一次登录之后全网使用,方便地访问活动目录提供的网络资源。对于管理员,则可以通过对活动目录的集中管理就能够管理全网的资源。

      如果把网络看作为一本书,活动目录就好像是书的目录,用户查询活动目录就类似查询书的目录,通过目录就可以访问相应的网络资源。这时的目录是活动的、动态的,当网络上的资源变化时,其对应的目录项就会动态更新。

      26.net中读写XML的类都归属于哪些命名空间?

      System.Xml

      27.解释一下UDDIWSDL的意义及其作用。

       UDDI

      统一描述、发现和集成协议(UDDI, Universal Description, Discovery and Integration)是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准。UDDI 提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现。

      作用:用来说明一个Web服务的一些信息类型,以便帮助服务的请求者确定如下问题:WHO,WHAT,WHERE,HOW(提供的服务质量怎样)      

       WSDL

      Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言

      作用:

      1)Types: 定义WSDL定义中所用到的数据类型,即XML Schema Types

      2)Message: 对一组消息的输入和输出参数的定义

      3)portType : 定义Web服务的操作

      4)  Binding :描述特定服务接口的协议、数据格式、安全性和其它属性.

      5)  Services : 制定特定服务的URL和提供的调用接口,包含一组端口元素

      28.如何部署一个ASP.net页面。

      上传  或者打包成EXE做成安装

      29.如何理解.net中的垃圾回收机制。

      在。NET与J2EE中的垃圾回收不同,在J2EE中,垃圾回收要写一大堆代码来处理,但是。NET中将会自动处理。垃圾回收就是将占用在内存中用不到的东西回收从而释放内存。

      30.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)

      1. 在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。

      2. 在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。

      3. 在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。

      4. 在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。

      九.代码编写题

      一、写一个程序,语言不限,打印出100的阶乘(1*2*3*…*100)的精确数值结果(不能是浮点数)。如5的阶乘是1*2*3*4*5=120 

       

       

      二、写一个程序,语言不限,能将人民币金额从阿拉伯数字转换为大写汉字表示。例如,把1234.56转换为壹仟贰佰叁拾肆圆零伍角陆分。 

       

       

      三、在SQL Server 数据库中,有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号)CourseID(varchar(10),课程编号)Achievement(int ,成绩),写一条SQL语句,筛选出每门课程的前两名的学生编号,课程编号,成绩并排序。 

       

       

       

      四、编程实现求出若干个整数之和为500的连续整数(如9899100101102),所有组合。

       

       

      十一.数据库题目

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

      答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.
      2.用什么方法比较2个字符串相似,且在系统运行时长驻内存? 

      比较字符串:生成正则表达式进行比较,使用静态变量/方法就可以长驻内存了

      3.SQL SERVER中的表存到多少条记录时,速度明显变慢? 

      100W条记录相当明显!

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

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

      十二.代码编写题

      Q1:求以下表达式的值,写出您想到的一种或几种实现方法:1-2+3-4+……+m

      1:public class MainClass

          {  public static void Main()   

              {

                  Console.WriteLine(Foo(30));

              }

              public static int Foo(int i)

              { if (i <= 0)

                      return 0;

                  else if(i > 0 && i <= 2)

                      return 1;

                  else return Foo(i -1) + Foo(i - 2);

              }

          }

      2:D(int m)

      {  int s;

        if( m % 2 == 0)

          return s = D(m-1) - m  

        else(m % 2 != 0)

          return s = D(m-1) + m

        return s;

       

      }

      Q2:给定以下两个表:

      部门ID 部门名称 

      1 部门1    

      2 部门2

      3 部门3

      4 部门4

      -------------------------------------------

      人员ID 人员姓名 部门ID

      1 姓名1 1

      2 姓名2 1

      3 姓名3 2

      4 姓名4 3

      5 姓名5 5

      1)用一条SQL语句显示所有人员的姓名及所在部门,没有部门的用未标志代替。

       

       

      2)用ASPNET中的DATAGRID控件,实现以下显示,描述你的思路。 

      姓名1

      部门1 姓名2

      部门2 ……

      部门3 ……

      Q3 维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么 

      答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。

      Q4ADONET相对于ADO等主要有什么改进? 

      答:我个人认为,ADO.NET与ADO相比,优势在于提供了数据集和数据适配器,有利于实现分布式处理,降低了对数据库服务器资源的消耗

      Q5ASPNETASP相比,主要有哪些进步?

      答:如果一定要说ASP.NET比ASP进步,还是有的:在形式上实现了面向对象编程;预编译的服务器端代码;更好的安全机制(那些ASPX文件的后台代码是以另外一个帐号运行的,与启动IIS的帐号不相同)等。

      Q6C#中的委托是什么?事件是不是一种委托? 

      答:委托本质上是一种“方法接口”,它相当于C/C 中的函数指针,当然它比函数指针安全,在C#中通常用于事件处理。与JAVA相比,可以避免使用大量小粒度的匿名类。事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托(一种“方法接口”)。实际上,如果你处理自定义的事件,就像JAVA中那样用接口实现也是可以的,不过这么做在C#一般没有什么特别的好处

      Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 

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

      Q8C#中要使一个类支持FOREACH遍历,实现过程怎样? 

      一个类型要想支持foreach则必须实现IEnumerable,IEnumerator两个接口。  

      // Namespace: System.Collections, Library: BCL

      public interface IEnumerable...{

          IEnumerator GetEnumerator();

      }

       // Namespace: System.Collections, Library: BCL

      public interface IEnumerator...{

          bool MoveNext();

          void Reset();

          object Current ...{ get; }

      }

      Q9C#中,执行以下代码后S的结果: 

      string[] a=new string[5];

      aa[0]="33";

      aa[6]="66";

      string s="";

      foreach(string m in aa)

      s+=m;

       

      Q10:写一个HTML页面,实现以下功能,左键点击页面时显示您好,右键点击时显示禁止右键。并在2分钟后自动关闭页面。

       <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title> </title> <style type="text/css"> </style> <script> document.onmousedown = function(e){ e = e || window.event; if(e.button == 1){ document.getElementById("console").innerHTML = "你好"; }else if(e.button == 2){ document.getElementById("console").innerHTML = "禁止右键"; } } </script> </head> <body> <div id="console"> </div> </body> </html> <script> setTimeout("window.close()",2*60*1000); </script>

      Q11:你对XMLHTTPWEBSERVICE 了解吗?简单描述其特点、作用 

      xmlhttp来实现无刷新的从服务器获取数据

      WebService的最大优点就是实现异构平台间的互通。 这也是使用WebService的主要原因之一。这样任何两个应用程序,只要他们能读写XML,就能相互通信。

      Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么? 

      接口是一个规范和比抽象类约束更强的类,接口不能拥有实体,而抽象类可以有实体。在定义规范的时候使用接口,在设计类体系是使用抽象类。

      Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么 

      用户控件模型适合创建内部,应用程序特定的控件,而自定义控件模型更适合创建通用的和可再分发的控件

      Q14:大概描述一下ASPNET服务器控件的生命周期 

      1. 初始化  - Init 事件 (OnInit 方法)

      2. 加载视图状态 - LoadViewState 方法

      3. 处理回发数据 - LoadPostData 方法:s对实现 IPostBackDataHandler 接口的控件,即可以自动加载回发数据的控件如:TextBox,DropDownList等

      4. 加载 - Load 事件 (OnLoad 方法)

      5. 发送回发更改通知 - RaisePostDataChangedEvent 方法 :对实现 IPostBackDataHandler 接口的控件,即可以自动加载回发数据的控件。在第 3 步中加载回发数据,如果回发前后数据发生更改,则在这一步触发相应的服务端事件。

      6. 处理回发事件 - RaisePostBackEvent 方法:对实现 IPostBackEventHandler 接口的控件,即能引起回发的控件,如 Button, LinkButton, Calendar 等

      7. 预呈现 - PreRender 事件(OnPreRender 方法)

      8. 保存视图状态 - SaveViewState 方法

      9. 呈现 - Render 方法

      10. 处置 - Dispose 方法

      11. 卸载 - UnLoad 事件 (OnUnLoad 方法)

      Q15UML

      統一建模语言( U M L)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。

      Q16:面向对象的概念,主要特点 

      面向对象的特点就是将程序的基本要素都看做对象来处理,而不是象面向过程一样,只对数据结构编程。采用对象后就可以用封装、继承和多态特性,提高代码的可重用性、可维护性

      Q17:类划分的依据。类粒度问题 

       

      Q18:事物管理问题 

       

      十三.简答题

      1 aspasp.net区别

      1.开发语言不同    ASP仅局限于使用non-type脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。 ASP.NET允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜力巨大的.NET Framework。

      2.运行机制不同    ASP是解释运行的编程框架,所以执行效率比较低。ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。 

      3.开发方式    ASP把界面设计和程序设计混在一起,维护和重用困难。ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。 ASP.NET更好些。   ASP.NET与ASP的主要区别在于前者是编译(Compile)执行,而后者是解释(Interpret)执行,前者比后者有更高的效率。实际上我们可以把ASP.Net的执行过程看做是编译后的普通语言运行时代码充当一个和前端浏览器和中间件用户交互的应用程序,它接受用户的请求,输出HTML流到客户端显示。除此之外,ASP.Net还可以利用.Net平台架构的诸多优越性能,如类型安全,对XML,SOAP, WSDL等Internet标准的强健支持。

      ASP的不足:

      1)它是被解释执行的,并不是被编译执行的,所以比较慢;

      2)它没有提供一个很好的开发环境;

      3)不支持类,很难封装复杂的外理逻辑;

      4)可随意加入脚本,很灵活,但也导致不可维护性。

      ASP.NET相应的优点:

      1)它是被编译后再执行的,所以效率要比ASP高很多;

      2)它有很高的开发环境,如VS.NET 2005,更容易调试程式;

      3)支持类,支持面向对象,可以使用.NET Framework 更好的进行开发;

      4)它使设计和开发分开过来,如界面设计放在.aspx文件中,开发则放在.cs 或 .vb等文件中。这样更有利于程式的维护。

      2 C#里面包含哪些?

       

      3 ADO  ADO.NET区别。

      (1).ADO.NET遵循更通用的原则,不那么专门面向数据库。ADO.NET集合了所有允许数据处理的类。这些类表示具有典型数据库功能(如索引,排序和视图)的数据容器对象。尽管ADO.NET是.NET数据库应用程序的权威解决方案,但从总体设计上看,它不像ADO数据模型那样以数据库为中心,这是ADO.NET的一大特点。 

      (2).目前,ADO.NET提供了两种数据库访问类库:一种用于SQL Server 7.0 或更高版本,另一种用于其他所有您可能已经安装的OLE DB提供程序。在这两种情况下,您分别使用不同的类,但遵循相似的命名规则。除前缀,名称都是相同的。前一种情况前缀为Sql,后一种情况则是OleDb。同时,.NET框架还提供了ODBC .NET的数据访问模式。ODBC .NET Data Provider是 .NET 框架的增强组件,它可以访问原始的 ODBC 驱动程序,就像 OLE DB .NET Data Provider 可以访问原始的 OLE DB providers 一样。目前它仅在下列驱动程序中测试过:Microsoft SQL ODBC Driver,Microsoft ODBC Driver for Oracle,Microsoft Jet ODBC Driver。 

      (3).ADO.NET提供了两个队形来处理从数据源中抽取数据,它们是DataSet和DataReader对象。前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。 

      (4).ADO.NET统一了数据容器类编程接口,无论您打算编写何种应用程序,Windows窗体,Web窗体还是Web服务,都可以通过同一组类来处理数据。不管在后端的数据源数SQL Server数据库,OLE DB,XML文件还是一个数组,您都可以通过相同的方法和属性来滚动和处理它们的内容。 

      (5).在ADO中,XML只不过是输入和输出格式。然而在ADO.NET中,XML是一种数据格式,提供了操作,组织,共享和传递数据的手段。

      4 适配器datadapter的作用 

      表示 SQL 命令集和数据库连接,用来填入 DataSet 并更新数据来源。 

      DataAdapter 是 DataSet 和数据来源之间的桥接器 (Bridge),用来撷取和储存数据。DataAdapter 藉由对应 Fill (它会变更 DataSet 中的数据来符合数据来源中的数据) 和 Update (它会变更数据来源中的数据来符合 DataSet 中的数据) 来提供这个桥接器。

      5 所有类中最顶层的类是哪个类 

      System.Object

      6 跳转页面有哪几种方式? 

      Response.Redirect("");

      Server.Transfer("");

      Server.Execute("");

      7 执行存储过程的方法是哪个? 

       

8 在哪设置全局变量 

 

9 session的设置

 

10 有哪些集合类?

 

11 arrylist list的区别 

 

12 类包含哪些成员 

1.建构函式 2.解构函式 3.常数 4.字段 5.方法 6.属性 7.索引子 8.运算子 9.事件 10.委派 11.类别 12.界面 13.结构

13 索引器

索引子 (Indexer) 允许使用与数组相同的方式来索引类别或结构的执行个体。索引子除了其存取子需要使用参数以外,其余特性都与属性相似。

a.索引子让对象能以类似数组的方式来索引。

b.get 存取子会传回一个值。set 存取子会指定一个值。

c.this 关键词的用途为定义索引子。

d.value 关键词是用来定义 set 索引子所指定的值。

e.索引子不需要以整数值来索引;您可以决定如何定义特定的查询机制。

f.索引子可以多载。

g.索引子可以具有一个以上的型式参数,例如,在存取二维数组时便是如此。

14 常用控件的属性

 

15 委托 

 

16 TREE控件 

 

17 listbox combox chacedlistbox的区别 

 

18 俩个表连接查询有什么修饰 

 

19 asp.net编译动作在什么地方第一次装载是发生?

 

20 在对象树的顶部是什么对象,asp.net的每个控件,应用程序和页面都是从这个对象中继承,也就是说每个页面都是页面对象的一个实例 

 

21 HYPERLINK  linkbotton控件的差别 

 

下面是华为面试题,比较专业。 

1 请你分别划osi7层网络结构图和tcp/ip5层结构图 

 

2 请你详细解释下IP协议的定义,在哪个层面上面, 主要有什么作用?

 

3 请问交换机和路由器分别实现的原理是什么?分别在哪个层面实现? 

 

4 请问c++c里面struct有什么区别? 

 

5 请说说析构函数和虚函数的用法和作用 

 

6 全局变量和局部变量有什么区别?怎么实现的?操作系统和编译器是怎么知道的? 

 

7 8086是多少位的系统?在数据总线是什么实现的? 

 

十四.Web 考察面试题 

1.ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释 

 

2.什么是WEB控件?使用WEB控件有那些优势?

运行在服务器端的控件,只要将HTML控件加上runat=server.

3.请解释ASPNET中以什么方式进行数据验证?

 

4.请谈谈对正则表达式的看法? 

正则表达式是一种处理文本的有用工具。无论是验证用户输入、搜索字符串内的模式、还是以各种有效方式重新设置文本格式,正则表达式都非常有用。

5.ASPNET中共有几种类型的控件?各有什么区别?

客户端控件,也就是我们在HTML中经常用到的

服务端控件,例如: <asp:TextBox ID="txt" runat="server" />

客户端控件也可以转成服务端控件

<input type="text" id="txt" runat="server" />

WEB控件分为:内部控件, 列表控件, 复杂控件, 验证控件

内部控件–内部控件的使用方法与 HTML 控件相同,它们映射到 HTML 元素并通过使用 runat = “server” 属性在服务器上执行

列表控件–用于在 Web 页中创建数据列表

复杂控件– ?当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户界面时,可以使用复杂控件

验证控件–输入控件的数据需要进行准确性和取值范围方面的检查

6WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。

要使用自动传回。

在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件

7WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用? 

可以调用,例如:

<asp:TextBox id="TextBox1" οnclick="clientfunction();" runat="server">

</asp:TextBox><INPUT id="Button2" value="Button" name="Button2"runat="server" οnclick="clientfunction();">

8ASPNETASP相比有什么优势?

 ASP的不足:

1)它是被解释执行的,并不是被编译执行的,所以比较慢;

2)它没有提供一个很好的开发环境;

3)不支持类,很难封装复杂的外理逻辑;

4)可随意加入脚本,很灵活,但也导致不可维护性。

ASP.NET相应的优点:

1)它是被编译后再执行的,所以效率要比ASP高很多;

2)它有很高的开发环境,如VS.NET 2005,更容易调试程式;

3)支持类,支持面向对象,可以使用.NET Framework 更好的进行开发;

4)它使设计和开发分开过来,如界面设计放在.aspx文件中,开发则放在.cs 或 .vb等文件中。这样更有利于程式的维护。

9.请解释web.config文件中的重要节点 

Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 1、<authentication> 节作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。<authentication> 元素必需与<authorization> 节配合使用。示例:以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。

<authentication mode="Forms" >

<forms loginUrl="logon.aspx" name=".FormsAuthCookie"/>

</authentication>

 其中元素loginUrl表示登陆网页的名称,name表示Cookie名称2、<authorization> 节作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与<authentication> 节配合使用。3、<compilation>节作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为True(Web.config文件中有详细说明,此处省略示例)4、<customErrors>作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。5、<httpRuntime>节作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。 6、 <pages>作用:标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。<pages>可以在计算机、站点、应用程序和子目录级别声明。7、<sessionState>  作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。 8、<trace>  作用:配置 ASP.NET 跟踪服务,主要用来程序测试判断哪里出错。

10.请解释ASPNET中的web页面与其隐藏类之间的关系?

一个ASP.NET页面一般都对应一个隐藏类,一般都在ASP.NET页面的声明中指定了隐藏类例如一个页面Tst1.aspx的页面声明如下<%@ Page language="c#" Codebehind="Tst1.aspx.cs" AutoEventWireup="false" Inherits="T1.Tst1" %>Codebehind="Tst1.aspx.cs" 表明经编译此页面时使用哪一个代码文件Inherits="T1.Tst1" 表用运行时使用哪一个隐藏类

11.什么是viewstate,能否禁用?是否所用控件都可以禁用?

Viewstate是保存状态的一种机制,EnableViewState属性设置为false即可禁用

ViewState 是由   ASP.NET   页面框架管理的一个隐藏的窗体字段。当 ASP.NET 执行某个页面时,该页面上的 ViewState   值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性(即<input   type=hidden>)。由于隐藏窗体字段是发送到客户端的页面的一部分,所以 ViewState 值被临时存储在客户端的浏览器中。如果客户端选择将该页面回传给服务器,则ViewState 字符串也将被回传。回传后,ASP.NET 页面框架将解析ViewState字符串,并为该页面和各个控件填充 ViewState属性。然后,控件再使用 ViewState 数据将自己重新恢复为以前的状态

13.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决 

很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断

14.请解释一个WEB页面中代码执行次序。 

Init,Load,PreRender事件执行顺序:

1)控件的Init事件

2)控件所在页面的Init事件

3)控件所在页面的Load事件

4)控件的Load事件

5)控件所在页面的PreRender事件

6)控件的PreRender事件

规律:

1)Init事件从最里面的控件(包括用户控件及普通控件)向最外面的控件(页面)引发,Load及PreRender等其他事件从最外面的控件向最里面的控件引发;

2)控件之间相同事件的执行顺序依控件在页面的位置按从左到右,从上到下的先后顺序执行。

注意:

1)切记用户控件也被视为页面中的一个控件;

2)把用户控件作为单独的一个特殊页面来看,它本身及其所包含的控件同样遵守相同的规律;

3)有时在客户端程序(如javascript)中会用到客户端body对像的onload事件,注意这个客户端事件是最后执行,即在服务器端所有事件执行完后才执行.

15.请解释什么是上下文对象,在什么情况下要使用上下文对象

上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对象

16.请解释转发与跳转的区别? 

转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面跳转就是指客户端的跳转

17.请解释ASP.NET中不同页面之间数据传递有那些方式? 

session(viewstate) 简单,但易丢失,application 全局,cookie 简单,但可能不支持,可能被伪造input ttype="hidden" 简单,可能被伪造,url参数 简单,显示于地址栏,长度有限,数据库 稳定,安全,但性能相对弱

18.请解释ASPNETbutton linkbutton imagebutton hyperlink这四个控件之间的功别

1.Button和ImageButton用于将数据传递回服务器.

2.Hyperlink用于在页面之间导航

3.LinkButton用于将数据保存到服务器或访问服务器上的数据

4.LinkButton 控件具有与 HyperLink 控件相同的外观,不过却具有与 Button 控件相同的功能

19.请解释一下。NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。

自定义类结构传数据

20.如果出现ASPNET中的事件不能触发可能由于什么原因造成? 

后台的Rowdatabound事件可以进行绑定,比如这样

if(数据行)

{

   DropDownList ddl = (DropDownList)e.row.FindControl("DropDownListID");

   ddl.datasource = 数据源;(假定你已经设置了keyvalue绑定字段)

    ddl.databind();

}

21.如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决? 

 

22.请解释asp.net中的数据绑定与传统数据绑定有什么区别? 

传统的数据绑定是一种“连接数据绑定”,即在数据绑定期间,客户端一直保持与数据库的连接,这种状态下,数据库的性能大受影响。asp.net的数据绑定是一种“非连接数据绑定”,即只在读取和更新数据的瞬间,才与数据库连接并交换数据,之后便可释放与数据库的连接,数据库的性能因此将大大提高。

23.请解释.net采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释。

事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发(触发)事件的对象叫做事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。

在事件通信中,事件发送方类不知道哪个对象或方法将接收到(处理)它引发的事件。所需要的是在源和接收方之间存在一个媒介(或类似指针的机制)。.NET Framework 定义了一个特殊的类型(Delegate),该类型提供函数指针的功能。

委托是一个可以对方法进行引用的类。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用。这样,委托就等效于一个类型安全函数指针或一个回调。这里只讨论委托的事件处理功能。

24.请解释接口的显式实现有什么意义? 

接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。实现接口的任何类都必须提供接口中所声明的抽象成员的定义。接口可以要求任何实现类必须实现一个或多个其他接口。

1、因为显式接口成员执行体不能通过类的实例进行访问,这就可以从公有接口中把接口的实现部分单独分离开。如果一个类只在内部使用该接口,而类的使用者不会直接使用到该接口,这种显式接口成员执行体就可以起到作用。

2、显式接口成员执行体避免了接口成员之间因为同名而发生混淆。如果一个类希望对名称和返回类型相同的接口成员采用不同的实现方式,这就必须要使用到显式接口成员执行体。如果没有显式接口成员执行体,那么对于名称和返回类型不同的接口成员,类也无法进行实现。

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

一. 在什么情况下会使用虚方法:

父类的方法没有方法体 由每个子类去继承这个父类的方法 而在每个子类中实现这个父类的方法,但每个子类的实现方式不同即方法体不同 这时我们会吧 这个父类的方法定义长虚方法

二. 虚方法与接口有什么不同:

虚方法是子类继承父类 在子类中实现父类的虚方法(即被定义成虚方法并没有方法体的方法)具体的实现时在子类中有不同的实现

接口是 类去继承接口 并重写接口中的方法

从而在继承了接口的类中实现了接口的方法

26.怎样理解静态变量?

静态变量(static)是相对自动变量(auto)等而言的,一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束,但是如果是局部静态变量,则此静态变量只能在局部作用域内使用,超出范围不能使用,但是它确实还占用内存,还存在.自动变量就是一般的变量,在C语言中auto关键字可以省略

27.向服务器发送请求有几种方式?

Get 方式:字符限制 255个 不安全 在地址栏显示 提交的部分内容

Post方式:字符限制大概在1M左右 较为安全 推荐使用此方式

28.DataReaderDataset有什么区别?

DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作

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

使用Request["string"].Request.QueryString[

"flag"]

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

 

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

一般为3层 , 数据访问层,业务层,表示层。数据访问层对数据库进行增删查改。业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。表示层为了与用户交互例如用户添加表单。优点:分工明确,条理清晰,易于调试,而且具有可扩展性。缺点:增加成本。

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

SqlHelper 列如:SqlHelper.ExcuteDataSet()执行存储过程.

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

抽象工厂模式,一般在连接多数据库的时候用到

34.您对WebService的体会?

Web Service 简单的说就是把以前的整程序分布式处理,然后后使用接口联合起来。如可以从一台服务器上调用另外一台服务器上的类和资源来使用。达到最佳使用效率。

Web Service  有2个特征,注册和接口。可以使用HTTP-GET 和 HTTP-POST ,SOAP(简单对象访问协议,基于XML)访问Web Service 。

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

 

36.您离职的原因是什么?

 

37.通过超链接怎样传递中文参数?

传递时用HttpUtility.UrlEncodeUnicode("中文参数"),获取时直接用Request.QueryString["参数"]就行了

<%@ import namespace="System.Web.Util"%>

 

 

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

foreach (Control a in this.Page.Form.Controls)

{

    string name = a.GetType().Name;

     if (a.GetType().Name == "TextBox")

     {

          TextBox mm = a as TextBox;

          mm.Text = string.Empty;

      }                                  

}

39.请编程实现一个冒泡排序算法

private static int[] Sort(int[] arrayNum)

{    int i, j, k;

    bool exchange;

    for (i = 1; i < arrayNum.Length; i++)

    {

      exchange = false;

      for (j = arrayNum.Length - 1; j >= i; j--)

       {

         if (arrayNum[j - 1] > arrayNum[j])

         {

               k = arrayNum[j];

              arrayNum[j] = arrayNum[j - 1];

               arrayNum[j - 1] = k;

               exchange = true;

          }

        }

        if (!exchange)

         {

           break;

         }

    }

    return arrayNum;

}

第十五部分:C#Asp.netjavascriptsqlserver

1.简要说出privateprotected的区别 

private 存取只限于包含类别。

protected 存取只限于包含的类别或衍生自包含类别的型别。

2 说出下面几个函数的区别:

private void test(string str){…}

private void test(ref string str){…}

private void test(out string str){…}

out 关键词会导致以传址 (By Reference) 方式传递自变量。这点与 ref 关键词相类似,除了 ref 需要在传递变量之前先初始化变量以外。若要使用 out 参数,方法定义和呼叫方法都必须明确使用 out 关键词。

3 写代码:取得服务器时间并显示(弹出消息框即可),要求完全在服务器端实现(提示:在C#中使用Response.Write()方法)

Response.Write("<script >alert('當前時間:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')</script>");

4.说出下面各处正确或错误的理由(写在该行) 

class Test

{

int x;

static int y;

void F() {

x = 1; //ok

y = 1; //ok

}

static void G() {

x = 1; //error 非靜態成員不能在靜態

y = 1; //ok

}

static void Main() {

Test t = new Test();

t .x = 1; // Ok

t .y = 1; // Error

Test.x = 1; // Error

Test.y = 1; // Ok

}

}

4 简要的谈谈你对多态的理解,并简单的实现一个多态的例子 

1.简化了设计过程,因为组件开始时可以很小,具有最小功能;之后,组件继续提供最小功能,同时不断插入其他的功能,并通过实际使用那些功能来确定合适的功能。 

2.简化了兼容性的维护,因为组件的新版本可以在添加新接口的同时继续提供现有接口。客户端应用程序的后续版本可以利用这些接口的优点 

3.在继承类中实现实例化。它可以包含已实现的方法和属性,但也可以包含未实现的过程,这些未实现过程必须在继承类中实现。这使您得以在类的某些方法中提供不变级功能,同时为其他过程保持灵活性选项打开。抽象类的另一个好处是:当要求组件的新版本时,可根据需要将附加方法添加到基类,但接口必须保持不变。 

示例:实现多态性的程序 

using System ;

public class DrawingBase

{ public virtual void Draw( )

{Console.WriteLine("I'm just a generic drawing object.") ;

}

}

public class Line : DrawingBase

{public override void Draw( )

{ Console.WriteLine("I'm a Line.") ; }

}

public class Circle : DrawingBase

{ public override void Draw( )

{ Console.WriteLine("I'm a Circle.") ; }

}

public class Square : DrawingBase

{

public override void Draw( )

{ Console.WriteLine("I'm a Square.") ; }

}

public class DrawDemo

{

public static int Main(string[] args)

{

DrawingBase [] dObj = new DrawingBase [4];

dObj[0] = new Line( ) ;

dObj[1] = new Circle( ) ;

dObj[2] = new Square( ) ;

dObj[3] = new DrawingBase( ) ;

foreach (DrawingBase drawObj in dObj)

drawObj.Draw( ) ;

return 0;

}

}

输出结果是: 

I'm a Line.

I'm a Circle.

I'm a Square.

I'm just a generic drawing object.

 

5 解释以下语句的含义: 

a. v1=opener.v1;

b. if(100 = = ”100”){…}

c. if(100 = = = ”100”){…}

d.function printBlank(){

var coll=document.all;

if(coll != null){

for(i=0;i<coll.length;i++){

if(coll.item(i).tagName=="INPUT"){

coll.item(i).style.visibility="hidden";

}

}

}

}

6 说出结果 

a. var x=0/0;

if (x !=x){

document.write(“x!=x”);

}else{

document.write(“x==x”);

}

 

b. var i=1;

switch (i)

{

case 1:

case 2: alert(“good”);break;

case 3: alert(“end”);break;

}

7.如果一个页面与数据库有频繁的交互,但又不能让页面刷新的太厉害,您有什么好的方法? 

8.下面关于索引的描述中。哪些是正确的?(A 

A、索引能够加快查询的速度 

B、索引可能会降低数值的更新速度 

C、应该尽可能多的为表建立索引 

9.用tsql实现: 

a. 如果一个表(table1)存在就删除,否则就创建(假设表只有一个varcahr(50)的字段) 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Table1]

GO

 

CREATE TABLE [dbo].[Table1] (

[name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

) ON [PRIMARY]

GO

b. 使用select语句根据表table1(sex bit)中的sex的值返回一张表 (sex char(2)),规则如下: 当sex为0时返回’男’,为1时返回’女’。

select case  when  table1.sex=0  then  '男'  else  '女'  end  as  sex from  table1  

10. 现有表 Table1 Table2,其字段相同([姓名] varchar(10)),现要得到Table1中在Table2中没有的姓名,请写出Sql语句。 

select [name] from table1

where  [name] not in( select [name] from table2)

11.写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在) 

create proc proTable

@tableName Nvarchar(50)

as

declare @sql nvarchar(4000)

set @sql='select count(*) from '+@sql

exec (@sql)

12.SQL的全称是什么?

SQL 的全称是 Structured Query Language,

中文含义是:结构化查询语言.

它是个关系数据库的标准语言,功能极强

13.用存储过程和触发器如何解决并发? 

 

14.给你两个8两个3 用加减乘除算出24来,写出算法! 

 

15.请描述一下.net的页面访问基本过程,以及和普通Web访问过程的区别(请 描述从web页面请求到页面返回的主要事件和过程);

 

16.怎样理解web应用程序的无状态编程

WEB的无状态编程源于HTTP协议本身的无状态。因为每次HTTP请求的前后,我们都没有办法确定客户端(浏览器)的具体状态。

17.请你列举你最熟悉的WebControl以及他们的主要功能;

 

18.请你列举你最熟悉的.net名称空间以及他们的主要内容。

 

19.您经常访问哪些有关.net的网站?

CSDN:http://www.csdn.net/

博客园 :http://www.cnblogs.com/

20..net中,请描述有哪些办法可以防止页面刷新局部内容闪烁问题(例如某个聊天页面,每隔几秒就自动刷新,怎样防止闪烁)?

使用 .NET中的Ajax功能可以实训这个效果 

21.请描述一下在.netForms认证模式下,怎样用代码(用户名单存在数据库中,而不是WebConfig中)实现一个基于角色的授权?

private void Buttonlogin_Click(object sender, System.EventArgs e)
{

string user = TextBoxUser.Text; //读取用户名

string password = TextBoxPassword.Text; //读取密码

if(Confirm(user,password) == true) //confirm方法用来验证用户合法性的

{

     string userRoles = UserToRole(user); //调用UserToRole方法来获取role字符串
   FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket (1,user,DateTime.Now,          DateTime.Now.AddMinutes(30), false,userRoles,"/") ; //建立身份验证票对象

   string HashTicket = FormsAuthentication.Encrypt (Ticket) ; //加密序列化验证票为字符串

  HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket) ; //生成Cookie
Context.Response.Cookies.Add (UserCookie) ; //输出Cookie

  Context.Response.Redirect (Context.Request["ReturnUrl"]) ; // 重定向到用户申请的初始页面
}    else
{        // 用户身份未被确认时的代码
}

}

具体实现过程代码如上面:

用户登录成功后,找数据据取出该用户的角色信息,用一个字符串数组存储起来(多个角色用,分割开来),然后和相对于的用户名用身份票据加密的方式存储在Cookie中,输入到客户端。在全局应用程序global.asax文件中的HttpApplication事件将角色信息分割出来存放在一个字符串组中,这样,这任何一个页面就可以实现基于角色的身份验证了(系统有自带的方法提供判断该用户是否输入某个角色)。

22..net中,怎样配置数据库连接,可以使开发环境到应用环境迁移数据库时不修改程序?

在配置文件web.config文件中配置数据库连接字符串。

23.一个数据库字段name,需要在网页中只显示该字段的姓,而隐藏名 字,类似**”形式,请写出数据绑定的自定义表达式。

<%#(Eval(“name”).ToString())Substring(0,1)** %>

24.描述一下制作一个用户控件(UserControl)的过程。

创建一个USERCONTROL,然后把需要的控件放进去,写需要的代码。

25.有制作过自定义的webcontrol(注意不是用户控件)?如果有,请 描述一下自定义控件制作基本过程,主要重载哪些方法?

做过。要重载哪些方法不确定,视控件的功能和复杂度的不同而不同。一般的有VIEWSTATE操作方法、CONTROL创建方法、RENDER方法等。

26.构成ADO.net的主要对象以及他们的作用。

COMMAND   

CONNECTION   

DATAADAPTER   

COMMANDBUILDER   

27.向服务器发送请求有几种方式,是那几种? 

2种,get和Post

28.写一段程序来判断服务器请求是get,还是post请求? 

string mm=Request.ServerVariables

["REQUEST_METHOD"];

string ll = Request.ServerVariables

["QUERY_STRING"];

29.net framework逻辑上分几个部分。 

.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库

30你用触发器的体会 

 

31.net做系统,你什么结构来开发(多层架构)

32做系统分析你用什么工具。 

是Rose,和Powder   Designer

36.你作为一个项目经理怎么样控制项目进度。

制定一个合理的项目计划,严格按照项目计划执行。 

37.谈谈您的项目管理经验。 

 

38.errorexception有什么区别?

 

39.List, Set, Map是否继承自Collection接口? 

 

40.abstract classinterface有什么区别? 

 

41.abstractmethod是否可同时是static,是否可同时是native,是否可同时是synchronized?

 

42.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 

 

43.启动一个线程是用run()还是start()?

 

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

 

45.是否可以继承String?

否,无法继承自密封类

46. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

 

47. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会,在return后.

48. 编程题: 用最有效率的方法算出2乘以8等於几?

 

49. 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

 

50. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

 

51. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?

 

52. 写一个Singleton出来。 数据库方面 

 

53. 存储过程和函数的区别 

 

54. 事务是什么? 

 

55. 游标的作用?如何知道游标已经到了最后? 

 

56. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 

 

57. 请列出c#中几种循环的方法,并指出他们的不同 

 

58. SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 

 

59. 有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.请给出code

 

60. 如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.

public class TestA

    {  public static int Count;

        public TestA()

        { Count = Count + 1;  }

        public int CountA

        {get { return Count; }    }

    }

TestA testa = new TestA();

TestA testb = new TestA();

TestA testb1 = new TestA();

TestA testb2 = new TestA();

TestA testb3 = new TestA();

TestA testb4 = new TestA();

TestA testb5 = new TestA();

Console.Write(testb.CountA);

61. A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.

 

62. 写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“.”,对其设计测试用例。

 

63. 什么是反射? 

 

64. Singleton如何写设计模式 

 

65. 什么是Application Pool 

 

66. 链表和数组的区别,各有什么优缺点

 

67. Remoting在客户端服务器怎么实现?

 

68. 什么是内存泄漏,怎样最简单的方法判断被存泄漏 ?

 

69. 使用什么工具来调用存储过程 

 

70. 什么是Web Service 

 

71. Socket怎么实现?(给出C# code)

 

72.谈谈final, finally, finalize的区别 

 

73. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

 

74.Static Nested Class  Inner Class的不同,说得越多越好(面试题有的很笼统)

 

75.HashMapHashtable的区别。 

 

76.Collection  Collections的区别。

 

77.什么时候用assert

 

78.GC是什么? 为什么要有GC?

GC是垃圾收集器。这个类别中的方法会影响什么时候对对象执行内存回收,以及什么时候释放对象所配置的资源。这个类别的属性会提供系统中可用内存的总数量以及配置至对象的内存之年龄分类或层代等等相关信息。内存回收行程会追踪并重新利用在 Managed 内存中配置的对象。内存回收行程会定期执行内存回收来重新利用配置给对象的内存 (该对象并无有效的参考)。当没有可用的内存来因应内存的要求时,会自动发生内存回收。或者,应用程序可以使用 Collect 方法来强制进行内存回收。

内存回收包含下列步骤: 

a.内存回收行程会搜寻在 Managed 程序代码中所参考的 Managed 对象。

b.内存回收行程会尝试最终处理未参考的对象。

c.内存回收行程会释放未参考并且回收其内存的对象。

79.String s = new String("xyz");创建了几个String Object?

 

80.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2

求其floor

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

 short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)

short s1 = 1; s1 += 1;(可以正确编译)

82. sleep()  wait() 有什么区别?

18. 数组有没有length()这个方法? String有没有length()这个方法?

在c#数组和string只有length属性,没有方法

83. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

 

84.给我一个你最常见到的runtime exception

 

笔试题 

.NET基础 

1. 了解程序集强签名吗? 

 

2. 请解释应用程序域、程序集、元数据、反射这几个技术名词 

 

3. 是否了解 URL Rewrite?请简要说明其原理和在 ASP.NET 中的实现方式。 

URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.

4. 简单说说 ASP.NET 中基于表单的身份验证方式的用法 

 

5. ASP.NET 中如何调用 Web Service 的方法? 

添加引用

TestService.Service ts = new TestService.Service();

DataSet ds = ts.GetUserInfo("","");     Response.Write(ds.Tables[0].Rows.Count);

6. View State 的作用和实现方式?

 ViewState 属性提供 Dictionary 对象来保留对相同网页的多个要求之间的值。这是网页用来在来回往返之间保留网页和控件属性值的预设方法。处理网页时,网页目前的状态和控件会杂凑至字符串中,并且储存在网页中当做一个隐藏字段,或是如果储存在 ViewState 属性的数据量超过 MaxPageStateFieldLength 属性中指定的值时,则会当做多个隐藏字段。网页回传到服务器时,网页会在网页初始化时剖析检视状态字符串,并且还原网页中的属性资

7. 如何实现页面分段缓存?

页面分段缓存 

页面分段缓存是用用户控件实现的。通过为页面每个区域创建单独的用户控件来定义页面的区域。在每个用户控件中,可以使用Output-Cache指令指出如何缓存控件的输出。 

注意: 

1、注意分段缓存不支持Location特性;缓存页面分段惟一合法的地方是web服务器。这是因为分段缓存在ASP.NET中是新的功能,所以浏览器和代理服务器不支持。 

2、分段缓存有另外一个在页面缓存中没有的特性——VaryByControl。VaryByControl特性允许指定一个由分号分隔的字符串列表,代表用户控件内使用的控件的名称;ASP.NET将针对值的每个不同的组合生成用户构件的一个缓存版本。 

页面分段缓存的限制 

1、如果为用户控件启用了缓存,就不能在包含它的页面中通过程序访问此控件了; 

   例如:ctlContents.Message = "Hello!"

2、不应该对缓存的用户控件使用数据绑定语法; 

   不允许:<myControls:PageContents CategoryID='<%# CategoryID%>' Runat='Server'/> 会产生一个错误信息; 允许: <myControls:PageContents CategoryID='2' Runat='Server'/>

8. 你是否知道下列名字:.NET Pet ShopIBuySpy StoreDotNetNukeNUnitData Access Application Block?说说它们分别都是什么。 

数据库开发 

 

9. 在超过10万条记录的页面显示时,你如何处理分页,有多少种替代方案? 

 

10. 请描述DataSet的特点 

 

11.  ADO.NET 操作 SQL Server 2000 数据库的一般步骤? 

 

12. 数据库某表主键自增,是很常见的情形。在ASP. NetC#程序中,要求向该表插入一条记录,并马上从该表查出这条记录。不能使用时间戳,请问你如何实现? 

 

13. 你会利用那些工具进行数据库的性能分析及其优化? 

 

14. 列举你所了解的XML技术及其应用 

 

15. 如何实现XML系列化(给出简单的代码示例) 

XML 序列化只会将对象的公用字段和属性值序列化为 XML 数据流。

XML 序列化不会转换方法、索引子、私用字段或只读属性 (只读集合则除外)。若要序列化对象的所有字段和属性 (包括公用和私用的),请使用 BinaryFormatter,而不要使用 XML 序列化。

public class TestXML

{

   public string UserName;

   public string Address;

   public string Company;

   public string Description;

}

XmlSerializer serializer = new XmlSerializer(typeof(TestXML));

string FilePath = Server.MapPath("XML/woody.xml");

TestXML tx = new TestXML();

tx.Address = "MITC";

tx.Company = "MDS";

tx.Description = "WOODY";

tx.UserName = "WU";

Stream writer = new FileStream(FilePath, FileMode.Create);

serializer.Serialize(writer, tx);

writer.Close();

16. 是否了解XSD,如果了解,请简述其特性 

 

17. 你知道 AJAX 吗?说说它的特点和一般实现方式 

 

18. 写出一段利用XMLHTTP工作的简单代码 

 

19. 如何定义嵌套的CSS样式类 

table.hover { border-right:1px solid #f1f1f1 }

20. 用简单的JavaScript伪实现面向对象的继承,封装,重载 

 

21.NET Remoting的工作原理是什么?请简要地写出一个.NET Remoting的示例 

分布式处理方式,在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界.

Remoting的通道主要有两种:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定义了IChannel接口。IChannel接口包括了TcpChannel通道类型和Http通道类型。它们分别对应Remoting通道的这两种类型。

TcpChannel类型放在名字空间System.Runtime.Remoting.Channel.Tcp中。Tcp通道提供了基于Socket的传输工具,使用Tcp协议来跨越Remoting边界传输序列化的消息流。TcpChannel类型默认使用二进制格式序列化消息对象,因此它具有更高的传输性能。HttpChannel类型放在名字空间System.Runtime.Remoting.Channel.Http中。它提供了一种使用Http协议,使其能在Internet上穿越防火墙传输序列化消息流。默认情况下,HttpChannel类型使用Soap格式序列化消息对象,因此它具有更好的互操作性。通常在局域网内,我们更多地使用TcpChannel;如果要穿越防火墙,则使用HttpChannel.

22. 从程序请求远程http站点,有哪些可用的类?

WebRequest request = WebRequest.Create(PageUrl);

WebResponse response = request.GetResponse();

Stream resStream = response.GetResponseStream();

StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);

string KK = sr.ReadToEnd();

resStream.Close();

sr.Close();

23. 请介绍在开发中你如何利用Web Services 

平台和服务 

 

24 对于Web Services,.NET Remoting,MSMQ

Enterprise Services这四个中接触过多少?能否简要的介绍他们的特点 

 

25 简述COM+/Enterprise Services的关键特性和应用场景 

 

26 对于Biztalk ServerSharePoint Portal ServerCMS ServerExchange ServerSQL Server这几个产品的定位和功能是如何理解的 

协作和质量管理 

27 你用过哪些版本控制工具 

 

28 在开发中你利用那些工具进行单元测试和模块测试 

 

29 如何进行Bug管理 

 

30 如何生成和管理开发文档 

 

31 请简单的描述一下项目开发过程 

 

32 可否简要的介绍asp.net 2.0 Membership,WebPartC#的匿名函数和泛型,希望可以简要地阐述其中的特点 

Membership:

Membership 类别是用在 ASP.NET 应用程序中,以验证使用者认证,并管理使用者设定,例如密码和电子邮件地址。Membership 类别可以单独使用,也可以结合 FormsAuthentication 使用,以建立验证 Web 应用程序或网站使用者的完整系统。Login 控件会封装 Membership 类别,以提供验证使用者的便利机制。

Membership 类别提供多项功能,以供进行:建立新使用者。

将成员资格信息 (使用者名称、密码、电子邮件地址,以及支持数据) 存放于 Microsoft SQL Server 或替代数据存放区中。

验证造访您网站的使用者。您可以透过程序设计方式验证使用者,您也可以使用 Login 控件,建立需要少数或不需要程序代码的完整验证系统。

管理密码,其中包括建立、变更、撷取,及重设等动作。您也可以选择设定 ASP.NET 成员资格,向遗忘密码的使用者要求密码问题和解答,以验证密码重设或撷取要求。

WebPart:

ASP.NET Web 组件是用于建立网站的整合式控件集合,可让使用者直接从浏览器修改 Web 网页的内容、外观和行为。这些修改可以套用至网站上的所有使用者或个别使用者。当使用者修改页面和控件时,可以储存这些设定,以保留使用者的个人偏好设定,在未来的浏览器工作阶段 (Session) 使用,这个功能称为个人化。这些 Web 组件能力让开发人员可以授权使用者动态地个人化 Web 应用程序,而不需要开发人员或管理员介入。 

藉由使用 Web 组件控件集合,开发人员可让使用者执行下列功能:

个人化页面内容。使用者可以将新的 Web 组件控件加入至页面,或是移除、隐藏或最小化控件,如同使用普通窗口一样。

个人化页面配置。使用者可以将 Web 组件控件拖曳至页面上的不同区域,或变更其外观、属性和行为。

汇出和汇入控件。使用者可以汇入或汇出 Web 组件控件设定以用于其它页面或网站,并保留控件中的属性、外观或甚至数据,如此可让使用者减少数据输入和组态设定的需要。

建立连接。使用者可以在控件间建立连接,例如,图表控件可以将股票行情实时广告牌控件中的数据显示为图表。使用者不但能个人化连接本身,也能个人化图表控件显示数据之外观和细节的方式。管理和个人化网站层级设定。授权的使用者可以设定网站层级设定,决定谁可以存取网站或网页,以及设用者共享,并防止不是管理员的使用者个人化共享的控件。与区域变量不同的是,外部变量的存留期会延续,直到参考匿名方法的委派可进行内存回收为止。n 的参考是在建立委派时所撷取。 

匿名方法:

将程序代码区块当做委派参数传递的一种方式

藉由使用匿名方法,您无须另外建立方法,因而可以减少在执行个体化委派时所需要另外撰写的程序代码。

匿名方法不能存取外部范围的 ref 或 out 参数。

anonymous-method-block 内不能存取 Unsafe 程序代码。

button1.Click += delegate(System.Object o, System.EventArgs e)                   { System.Windows.Forms.MessageBox.Show("Click!"); };

泛型:

泛型是指一些类别、结构、接口和方法,而它们具有其储存或使用的一或多个型别之替代符号 (型别参数)。泛型集合类别可能会将型别参数当做它所储存的对象型别之替代符号;这些型别参数会以其字段型别及其方法的参数型别之形式出现。泛型方法可能会将它的型别参数当做其传回值的型别或是其中一个正规参数的型别使用。

System.Collections.Generic 和 System.Collections.ObjectModel 命名空间中的泛型集合类别

33 如何理解责任链和命令模式的异同?

 

34 你如何学习新知识?有哪些站点或者资源你认为值得推荐? 

 

不定项选择:

1. 以下叙述正确的是: B C

A. 接口中可以有虚方法。B. 一个类可以实现多个接口。

C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。 

2.从数据库读取记录,你可能用到的方法有:B C D

A. ExecuteNonQuery            B. ExecuteScalar     

C. Fill                       D. ExecuteReader

3..对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) (ABC)   

  A.Close   B.Dispose   C.Finalize     D.using E.Quit   

4..以下关于refout的描述哪些项是正确的?(多选) ACD)   

  A.使用ref参数,传递到ref参数的参数必须最先初始化。   

  B.使用out参数,传递到out参数的参数必须最先初始化。   

  C.使用ref参数,必须将参数作为ref参数显式传递到方法。   

  D.使用out参数,必须将参数作为out参数显式传递到方法。 

5..在对SQL Server 数据库操作时应选用(A)。

a)SQL Server .NET Framework 数据提供程序;

b)OLE DB .NET Framework 数据提供程序;

c)ODBC .NET Framework 数据提供程序;

d)Oracle .NET Framework数据提供程序;

6.下列选项中,(C)是引用类型。

a)enum类型   b)struct类型 c)string类型   d)int类型

7.关于ASP.NET中的代码隐藏文件的描述正确的是(C

a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。

b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。

c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。

d)以上都不正确。

8.以下描述错误的是(A

a)在C++中支持抽象类而在C#中不支持抽象类。

b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

9.C#的数据类型有(A

a)值类型和调用类型; b)值类型和引用类型;

c)引用类型和关系类型;d)关系类型和调用类型;

10.下列描述错误的是(D

a)类不可以多重继承而接口可以;

b)抽象类自身可以定义成员而接口不可以;

c)抽象类和接口都不能被实例化;

d)一个类可以有多个基类和多个基接口;

11.DOM中,装载一个XML文档的方法(D

a)save方法   b)load方法 c)loadXML方法 d)send方法

12.下列关于构造函数的描述正确的是(C

a)构造函数可以声明返回类型。

b)构造函数不可以用private修饰

c)构造函数必须与类名相同

d)构造函数不能带参数

13.接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的成员变量。

a)方法、属性、索引器和事件; b)方法、属性信息、属性;

 c)索引器和字段;    d)事件和字段;

14.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(A )

a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件    d)HTML控件和IIS控件

15.ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

d)ExecuteReader()方法返回一个DataReder对象;

16.Winform中,关于ToolBar控件的属性和事件的描述不正确的是(D)

第二种:覆盖方法

public new XXXX(){}

第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。

27.如何把一个array复制到arrayList

foreach( object o in array )arrayList.Add(o);

28.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]

dataset,datatable,dataview , IList

29.概述反射和序列化

反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性

序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

30.概述o/r mapping 的原理

利用反射,配置 将类于数据库表映射

31.sealed修饰的类有什么特点

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

密封类不能同时为抽象类。

sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。

32.详述.NETclassstruct的异同!class:放在 ? struct放在?

struct值传递

类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。

33.概述.NET里对 remoting  webservice 两项技术的理解和实际中的应用。

远程逻辑调用,remoing接口只能用在.net中

34.什么是code-behind技术   aspx and cs

35.概述三层结构体系        web/business/dataaccess

36.asp.net如何实现MVC模式,举例说明! 

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

答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它.

38.值类型和引用类型的区别?写出C#的样例代码。

答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.

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

答:connection command sqladapter dataset datatable dataview等等.写不完了.

40.如何理解委托?

答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.

msdn2005中是这样解释的:

委托具有以下特点:

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

委托允许将方法作为参数进行传递。

委托可用于定义回调方法。

委托可以链接在一起;例如,可以对一个事件调用多个方法。

方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。

C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。

41.C#中的接口和类有什么异同。

答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 

而类是负责功能的具体实现! 

在类中也有抽象类的定义,抽象类与接口的区别在于: 

抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。 

但接口是一个行为的规范,里面的所有东西都是抽象的! 

一个类只可以继承一个基类也就是父类,但可以实现多个接口

42述怎样区分使用ExecuteNonQueryExecuteScalar方法?

ExecuteNonQuery:

使用 ExecuteNonQuery 以执行数据库目录 (Catalog) 作业 (例如,查询数据库结构或建立如数据表的数据库对象),或藉由执行 UPDATEINSERT DELETE 陈述式变更数据库的数据。

虽然 ExecuteNonQuery 不传回任何数据列,但是对应至参数的任何输出参数或传回值会填入 (Populate) 资料。对 UPDATEINSERT DELETE 陈述式而言,传回值是受命令影响的数据列数目。对其他类型的陈述式而言,传回值为 -1

ExecuteScalar:

执行查询,并传回查询所传回的结果集中第一个数据列的第一个资料行。会忽略所有其它的数据行和数据列。

43有关系EMPENOENAMESALARYDNO ),其中各属性的含义依次为职工号、姓名、工资和所在部门号,以及关系DEPTDNODNAMEMANAGER),其中各属性含义依次为部门号、部门名称、部门经理的职工号。试用SQL语句完成以下查询:

a) 列出各部门中工资不低于600元的职工的平均工资。

select dno , avg(salary) as average from emp where salary>=600 group by dno

b) 查询001号职工所在部门名称。

select DNAME from dept where DNO = (select DNO from emp where eno=’001’)

或者

select d.dname from dept as d left jon emp as e on e.dno = d.dno where e.eno=’001’

c)请用SQL语句将销售部的那些工资数额低于600的职工的工资上调10%

update EMP set SALARY =SALARY*(1+0.1) where SALARY<600 and DNO = ( select DNO from dept where dname= ‘销售部’ )

44.中有几种元素?

一个类可包含下列成员的声明:

构造函数、析构函数、常数、字段、方法、属性 、索引器、运算符、事件、委托、类、接口、结构

类可以定义对象可执行的操作(方法、事件或属性),并定义保存对象(字段)状态的值。尽管类通常同时包含定义和实现,但它也可以包含没有实现的一个或多个成员。类的实例是对象。可以通过调用对象的方法并访问其属性、事件和字段,来访问对象的功能。

 

Porfile配置信息

.net2.0为每个用户存储配制信息,

他是一个强类型与长期保存  与application session不一样呀.长期保存了

支持匿名用户,他配制存在Provider

<configuration>

<system.web>

<profile>

 <properties>

  <add name="Screennanme">

   <add name="posts" type="System.int32" defaultValue="0"/>

 profile 一段时间可以清除数据库中的不房问的数据

成员服务Membership Service

四层结构 Membership Data   Membership Providers数据库提供都, MeibershipApI 访问API提供

ConTrols login LoginStatus  LoginView Other Login Controols

if(Mebership.Validateuser(userName.text,Password.Text)) RedirectFromLoginPage(UserName.Text,RememberMe.Check.ed); 用户认证与授权

 site Navigation  站点导航  模式与树形式的两种式样

转载于:https://www.cnblogs.com/xiaz/p/5324276.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页