Vous êtes sur la page 1sur 45

内容摘要:private、protected、public、internal 修饰符的访问权限,ASP.

NET 页面
之间传递值的几种方式,C#中的委托是什么,件是不是一种委托,override 与重载的
区别,实现一个冒泡排序算法....
关键词:asp.net 面试题 JavaScript 面试题
本文地址:http://www.teecool.com/post/2007072502.html
内容正文:

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。


答 . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。

2 .列举 ASP.NET 页面之间传递值的几种方式。


答. 1.使用 QueryString, 如....?id=1; response. Redirect()....
2.使用 Session 变量
3.使用 Server.Transfer

3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第 30 位数是多少, 用递归


算法实现。
答: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);
}
}

4.C#中的委托是什么?事件是不是一种委托?
答:
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托

5.override 与重载的区别
答:
override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次
重载以适应不同的需要
Override 是进行基类中函数的重写。为了适应需要。

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

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


答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}

8.请编程实现一个冒泡排序算法?
答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}

9.描述一下 C#中索引器的实现过程,是否只能根据数字进行索引?
答:不是。可以用任意类型。

10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
------------------------------------------------------------------------------
------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1) 描述线程与进程的区别?

线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是
应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,
而线程定义的是代码执行堆栈和执行上下文的边界。一个进程可以包括若干个线
程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程
共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内
部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,
同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出
几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的
财产。

2) 什么是 Windows 服务,它的生命周期与标准的 EXE 程序有什么不同

Windows 服务是运行在 windows 后台指定用户下(默认 System)的应用程序,


它没有标准的 UI 界面,想比标准的 EXE 程序,Windows 服务是在服务开始的
时候创建,而在服务结束的时候销毁,而且可以设置服务是否与操作系统一起
启动,一起关闭。它支持三种方式:1)自动方式 2)手动方式 3)禁用。自
动方式的时候,windows 服务将在 OS 启动后自动启动运行,而手动方式则必须
手工启动服务,禁用的情况下服务将不能被启动。另外标准的 EXE 默认使用的
当前登录的用户,而 windows 服务则默认使用 System 用户,这在对系统资源访
问的时候特别需要注意。

3) Windows 单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存
一样吗?这对于系统设计有什么影响?

这个需要针对硬件平台,公式为单个进程能访问的最大内存量=2 的处理器位数
次方/2,比如通常情况下,32 位处理器下,单个进程所能访问的最大内存量
为:232 /2 = 2G 。单个进程能访问的最大内存量是最大虚拟内存的 1/2,因为要分
配给操作系统一半虚拟内存。

4) 什么是强类型,什么是弱类型?哪种更好些?为什么?

强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型
在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它
事 先 已 经 确 定 好 了 , 而 且 效 率 高 。 一 般 用 于 编 译 型 编 程 语 言 , 如 c+
+,java,c#,pascal 等,弱类型相比而言不安全,在运行的时候容易出现错误,但它
灵活,多用于解释型编程语言,如 javascript,vb 等

5) PID 是什么?在做系统的故障排除时如何使用它?

PID 是进程编号,在系统发现故障的时候,可以根据它寻找故障所发生的具体
进程,并且可通过 visual studio.net 等 ide 将故障进程附加到进程中进行调试
(debug)

6) 单个 TCP/IP 端口上能够被多少个进程侦听?

1个

7) 什么是 GAC?它解决了什么问题?

Gloal Assembly Cache,全局应用程序集缓存。它解决了几个程序共享某一个程


序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理
很简单,.net 应用程序在加载的时候,会首先查看全局应用程序集缓存,如果
有就可以直接使用,没有再到应用程序目录进行查找。

中级.NET 开发人员

1) 阐述面向接口、面向对象、面向方面编程的区别

面向接口更关注的是概念,它的原则是先定义好行为规范,再根据行为规范创
建实现,严格的来说,面向接口应该是面向对象中的一部分吧,因为面向对象
也强调的是本末倒置原则,也就是实现依赖于抽象,而抽象不依赖于具体实现,
更具比较的应该是面向接口与面向抽象对象,我的体会是面向接口更加灵活,
但实现时候,稍微有些代码冗余,而面向抽象可以结合面向接口,先定义接口,
再定义抽象类,在抽象类中处理一些公共逻辑,再实现具体实现类。面向对象是
对复杂问题的分解。面向方面的编程是一种新概念,它解决了很多面向对象无法
解决的问题,比如面向对象技术只能对业务相关的代码模块化,而无法对和业
务无关的代码模块化。而面向方面正是解决这一问题的方案,它的关键思想
是"将应用程序中的商业逻辑与对其提供支持的通用服务进行分离"。
2) 什么是 Interface?它与 Abstract Class 有什么区别?

接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为
规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类

3) 什么是反射?

程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,
模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者
获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时
创建和使用类型实例

4) 使用 ASMX 的 XML Web 服务与使用 SOAP 的.NET Remoting 的区别?

Web 服务使用的消息机制,而 Remoting 采用的 RPC. Web Service 能用于不同平


台,不同语言,Remoting 只适用于.Net。效率上 Remoting 高于 Xml Web Service

5) 类型系统是由 XMLSchema 表示的吗?CLS 是 XMLSchema 表示的吗?

不清楚

6) 从概念上阐述前期绑定(early-binding)和后期绑定(late-binding)的区别?

这个就像是强弱类型的比较相似,前期绑定是在编译的时候就确定了要绑定的
数据,而后期绑定是在运行的时候才填充数据。所以前期绑定如果失败,会在编
译时报编译错误,而后期绑定失败只有在运行时的时候才发生

7) 调用 Assembly.Load 算静态引用还是动态引用?

动态
=============================================================
=============================================================
21.在.net 中,配件的意思是?
答:程序集。(中间语言,源数据,资源,装配清单)

22.常用的调用 WebService 的方法有哪些?


答:1.使用 WSDL.exe 命令行工具。
2.使用 VS.NET 中的 Add Web Reference 菜单选项

23..net Remoting 的工作原理是什么?


答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位
置。
24.在 C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的
区别。
答:string str = null 是不给他分配内存空间,而 string str = "" 给它分配长度为空字
符串的内存空间。

25.请详述在 dotnet 中类(class)与结构(struct)的异同?


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

26.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate OnNew;
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButton
ClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用 OnDBOperate 委托签名的 OnNew 事件。
}
}
}
答:if( OnNew != null )
OnNew( this, e );

27.分析以下代码,完成填空
string strTmp = "abcdefg 某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j=
答:i=13,j=10

28.SQLSERVER 服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID


表示更新的事务号, LastUpdateDate 表示更新时的服务器时间,请使用一句
SQL 语句获得最后更新的事务号
答 : Select ID FROM table1 Where LastUpdateDate = (Select
MAX(LastUpdateDate) FROM table1)

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


引起死锁?并简要说明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会发生死锁,(但有一点 int 是按值传递的,所以每次改变的都只是一个
副本,因此不会出现死锁。但如果把 int 换做一个 object,那么死锁会发生)

30.简要谈一下您对微软.NET 构架下 remoting 和 webservice 两项技术的理解以及


实际中的应用。
答:WS 主要是可利用 HTTP,穿透防火墙。而 Remoting 可以利用 TCP/IP,二进
制传送提高效率。
=============================================================
=============================================================
11.用.net 做 B/S 结构的系统,您是用几层结构来开发,每一层之间的关系以及
为什么要这样分层?
答:一般为 3 层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现
用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。

12.在下面的例子里
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;x= 1 y = -1

13.什么叫应用程序域?
答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。

14.CTS、CLS、CLR 分别作何解释?
答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

15.什么是装箱和拆箱?
答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

16.什么是受管制的代码?
答:unsafe:非托管代码。不经过 CLR 运行。

17.什么是强类型系统?
答:RTTI:类型识别系统。

18.net 中读写数据库需要用到那些类?他们的作用?
答:DataSet:数据存储器。
DataCommand:执行语句命令。
DataAdapter:数据的集合,用语填充。

19.ASP.net 的身份验证方式有哪些?分别是什么原理?
答:10。Windwos(默认)用 IIS...From(窗体)用帐户....Passport(密钥)

20.什么是 Code-Behind 技术?


答:代码后植。
=============================================================
=============================================================
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 的原理

利用反射,配置 将类于数据库表映射

6.类成员有( )种可访问形式

可访问形式?不懂。

可访问性:public ,protected ,private,internal

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 值传递

类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员
类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并
且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可
以通过聪明地使用结构来增强性能。

12.概述.NET 里对 remoting 和 webservice 两项技术的理解和实际中的应用。

远程逻辑调用,remoing 接口只能用在.net 中

13.什么是 code-behind 技术

aspx and cs

14.概述三层结构体系

web/business/dataaccess
15.asp.net 如何实现 MVC 模式,举例说明!

web/business/dataaccess
=============================================================
=============================================================
内容摘要:考查了与 string 相关的知识点, dotnet 中类(class)与结构(struct)的异同
委 托 (delegate) 的 知 识 , 线 程 安 全 的 相 关 知 识 , 正 确 使 用 连 接 池 ,remoting 和
webservice 两项技术...
关键词:c#面试题 .NET 面试题 SqlServer 面试题
本文地址:http://www.teecool.com/post/2007072501.html
内容正文:

1、在 C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的


区别。
回答要点:说明详细的空间分配。(10 分)
答:string str = null 是不给他分配内存空间,而 string str = "" 给它分配长度为空字
符串的内存空间.

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


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

3、根据委托(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.ToolBarButton
ClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用 OnDBOperate 委托签名的 OnNew 事件。
}
}
}
答:if( OnNew != null )
OnNew( this, e );
4、分析以下代码,完成填空(10 分)
string strTmp = "abcdefg 某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j=
答:i=13,j=10

5、SQLSERVER 服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID


表示更新的事务号, LastUpdateDate 表示更新时的服务器时间,请使用一句
SQL 语句获得最后更新的事务号。(10)
答:Select ID
FROM table1
Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)

6、根据线程安全的相关知识,分析以下代码,当调用 test 方法时 i>10 时是否会


引起死锁?并简要说明理由。(10 分)
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会发生死锁,(但有一点 int 是按值传递的,所以每次改变的都只是一个
副本,因此不会出现死锁。但如果把 int 换做一个 object,那么死锁会发生)

7、分析以下代码。(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。所以理论上并非所有异常都会被捕捉。)

8、简要谈一下您对微软.NET 构架下 remoting 和 webservice 两项技术的理解以及


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

9、公司要求开发一个继承 System.Windows.Forms.ListView 类的组件,要求达到


以下的特殊功能:点击 ListView 各列列头时,能按照点击列的每行值进行重排
视图中的所有行 (排序的方式如 DataGrid 相似)。根据您的知识,请简要谈一下您
的思路:(10)
答:根据点击的列头,包该列的 ID 取出,按照该 ID 排序后,在给绑定到 ListView

10、给定以下 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 );
}
}
简单的说就是从根节点开始遍历找子节点,在从找到的子节点找它的子节点,一层
层下去
=============================================================
=============================================================
内容摘要:转发与跳转的区别,Socket 进行同步通讯编程的详细步骤,dotnet 中类
(class)与结构(struct)的异同,什么叫做 SQL 注入,如何防止...
关键词:.NET 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007121201.html
内容正文:

18. 请解释转发与跳转的区别?
转发就是服务端的跳转 A 页面提交数据到 B 页面,B 页面进行处理然后从服务端
跳转到其它页面
跳转就是指客户端的跳转

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


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

1、在 C#中,string str = null 与 string str = “” 请尽量使用文字或图象


说明其中的区别。
string str = null 是不给他分配内存空间,而 string str = “”给它分配长度为
空字符窜的内存空间.

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


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

3、根据委托(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.ToolBarButto
nClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用 OnDBOperate 委托签名的 OnNew 事件。
}
}
}
}
____________________________________________________________________
if( OnNew != null )
OnNew( this, e );

4、分析以下代码,完成填空(10 分)
string strTmp = "abcdefg 某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j= i 还真的不知道, j=10

5 、 SQLSERVER 服 务 器 中 , 给 定 表 table1 中有两个 字段


ID、LastUpdateDate,ID 表示更新的事务号, LastUpdateDate 表示更新时的服
务器时间,请使用一句 SQL 语句获得最后更新的事务号。(10)
select top ID from table1 order by LastUpdateData desc

8、简要谈一下您对微软.NET 构架下 remoting 和 webservice 两项技术的理解以


及实际中的应用。(10)
remoting 是.net 中用来跨越 machine, process, appdomain 进行方法调用的技
术,对于三成结构的程序,就可以使用 remoting 技术来构建.它是分布应用的基
础技术.相当于以前的 DCOM Web Service 是一种构建应用程序的普通模型,
并能在所有支持 internet 网通讯的操作系统上实施。Web Service 令基于组件的
开发和 web 的结合达到最佳,基于组件的对象模型

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


利用 sql 关键字对网站进行攻击。过滤关键字'等
所谓 SQL 注入(SQL Injection),就是利用程序员对用户输入数据的合法性检
测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务
器的信息,从而获取想得到的资料。
http://localhost/lawjia/show.asp?ID=444 and user>0, 这时 ,服 务器 运行 Select *
from 表名 where 字段=444 and user>0 这样的查询,当然,这个语句是运行不下
去的,肯定出错,错误信息如下:
  ·错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server] 将 nvarchar 值 'sonybb' 转换为
数据类型为 int 的列时发生语法错误。

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

20.请叙述类与结构的区别。
  1)、结构是值类型;
  2)、结构不支持继承;
  3)、结构不能定义默认的构造函数;
  4)、结构不能定义析构函数;
  5)、结构不能使用初始值设置域值。
=============================================================
=============================================================
内容摘要:UDP 连接和 TCP 连接的异同,什么是 code-Behind 技术,.net 中读写
XML 的类都归属于哪些命名空间,解释一下 UDDI、WSDL 的意义及其作用,什么
是 SOAP,有哪些应用....
关键词:c#面试题 .NET 面试题 asp.net 面试题
本文地址:http://www.teecool.com/post/2007120501.html
内容正文:8.C#中的接口和类有什么异同。
答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概
念!
而类是负责功能的具体实现!
在类中也有抽象类的定义,抽象类与接口的区别在于:
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法
和属性,需要进一步的专业化。
但接口是一个行为的规范,里面的所有东西都是抽象的!
一个类只可以继承一个基类也就是父类,但可以实现多个接口
9.net 中读写数据库需要用到哪些类?他们的作用
答 : 这 个 类 自 已 可 以 写 的 啊 , 你 是 指 基 类 吗 ? 那
configuration,sqlconnection,sqlcommand 等都要用到.
10.UDP 连接和 TCP 连接的异同。
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连
结.
11.ASP.net 的身份验证方式有哪些?分别是什么原理?
答:form 认证,windows 集成认证等,原理不清楚.
13.什么是 code-Behind 技术。
答:代码分离,这是个明智的东西,像 ASP 这样混成一堆很不爽.或者可以理解成
HTML 代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在
一起也是可以的.
15..net 中读写 XML 的类都归属于哪些命名空间?
答:System.Xml
16.解释一下 UDDI、WSDL 的意义及其作用。
答:
17.什么是 SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式
的环境中交换信息并执行远程过程调用的协议,是一个基于 XML 的协议。使用
SOAP,不用考虑任何特定的传输协议(最常用的还是 HTTP 协议),可以允许
任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通
信采用的是 XML 格式的消息,具体请看:http://playist.blogchina.com/2521621.html
20.常用的调用 webservice 方法有哪些?
答:
可以从浏览器、ASP 页或其他 WEB 服务调用可以使用 HTTP-GET HTTP-POST
访问 WEB 服务也可以从 ASP 页或其他 WEB 服务向其他 WEB 服务发出 SOAP
请求 HTTP-GET HTTP-POST SOAP 使用 WEB 服务代理
6. 私有程序集与共享程序集有什么区别?
一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的
目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓
存(Global Assembly Cache)之中,这是一个由.NET 运行时所维护的程序集仓
库。共享程序集通常是对许多应用程序都有用的代码库,比如 .NET Framework
类。
7. 请解释进程与线程的区别?进程与程序的区别?
一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在 *
作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用
程序分配处理时间的最小单元。
8. CLR 与 IL 分别是什么含义?
CLR: 公共语言运行时,类似于 Java 中的 JVM,Java 虚拟机;在.Net 环境下,
各种编程语言使用一种共同的基础资源环境,这就是 CLR,CLR 将直接与*作
系统进行通信,而编程语言如 C#.NET 将尽量避免直接与*作系统直接通信,加
强了程序代码的执行安全性,可以这样看: CLR 就是具体的编程语言如:
C#.NET 与*作系统之间的翻译,同时它为具体的编程语言提供了许多资源:
IL,中间语言,也称 MSIL,微软中间语言,或 CIL,通用中间语言;所有.NET
源代码(不管用哪种语言编写)在进行编译时都被编译成 IL。在应用程序运行
时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
10 .请解释 ASP.NET 中以什么方式进行数据验证
Aps.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定
义验证五大控件,另还有一个集中验证信息处理控件
11. WEB 控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其
原理?自动传回是什么?为什么要使用自动传回。
在 web 控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先
调用 Page_Load 事件,然后根据传回的状态信息自动调用服务端事件自动传回是
当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端
只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能
调用客户端事件,而不能调用服务端事件
12. WEB 控件及 HTML 服务端控件能否调用客户端方法?如果能,请解释如
何调用?
可以调用
例如:<asp:TextBox id="TextBox1" onclick="clientfunction();" runat="server">
</asp:TextBox>
<INPUT id="Button2" value="Button" name="Button2"
runat="server" onclick="clientfunction();">
13. 请解释 web.config 文件中的重要节点
appSettings 包含自定义应用程序设置。
system.web 系统配置
compilation 动态调试编译设置
customErrors 自定义错误信息设置
authentication 身份验证,此节设置应用程序的身份验证策略。
authorization 授权, 此节设置应用程序的授权策略.
14. 请解释 ASP。NET 中的 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" 表用运行时使用哪一个隐藏类
15. 什么是 viewstate,能否禁用?是否所用控件都可以禁用?
Viewstate 是保存状态的一种机制,EnableViewState 属性设置为 false 即可禁用
16. 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎
么解决
很有可能是在 Page_Load 中数据处理时没有进行 Page 的 IsPostBack 属性判断
17. 请解释什么是上下文对象,在什么情况下要使用上下文对象
上下文对象是指 HttpContext 类的 Current 属性,当我们在一个普通类中要访问
内置对象(Response,Request,Session,Server,Appliction 等)时就要以使用此对象
=============================================================
=============================================================
内 容摘要:本网站收集的一些 面试题:反射和序列化 ,把一个 array 复制到
arrayList 里,o/r mapping 的原理,sealed 修饰的类有什么特点
,.NET 里 class 和 struct 的异同,概述三层结构体系
关键词:.NET 面试题 asp.net 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007071307.html
内容正文:7. 某一密码仅使用 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
问题三:下列哪一个是单词密码?
A) KLLN B) LOML C) MLLO D)NMKO
答案:C
8. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得
等式成立,如何移动?
答案:62 移动成 2 的 6 次方
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 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具
体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数
成员的调用可以转换为非虚拟调用来处理。
11.详述.NET 里 class 和 struct 的异同!
class:放在 ? struct 放在?
struct 值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员
类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并
且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可
以通过聪明地使用结构来增强性能。
12.概述.NET 里对 remoting 和 webservice 两项技术的理解和实际中的应用。
远程逻辑调用,remoing 接口只能用在.net 中
13.什么是 code-behind 技术 aspx and cs
14.概述三层结构体系 web/business/dataaccess
15.asp.net 如何实现 MVC 模式,举例说明! web/business/dataaccess
2.什么是 ASP.net 中的用户控件
答:用户控件就是.ascx 扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.
比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控
件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写
方法调整.
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱
和拆箱?什么是重载?CTS、CLS 和 CLR 分别作何解释?
答:装箱就是把值类型转成引用类型,从 MS IL 角度看好像是 boxing,没记错的话
是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回
值可以相同的方法.CLR 是通用语言运行时,其它的不清楚.
4.列举一下你所了解的 XML 技术及其应用
答:XML 可是好东西,保存配置,站与站之间的交流,WEB SERVICE 都要用它.
5.值类型和引用类型的区别?写出 C#的样例代码。
答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就
是引用类型的,这个不用多写了吧.
6.ADO.net 中常用的对象有哪些?分别描述一下。
答:connection command sqladapter dataset datatable dataview 等等.写不完了.
7.如何理解委托?
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那
个方法.
msdn2005 中是这样解释的:
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代
替单独定义的方法。
=============================================================
=============================================================
内容摘要:.net 面试题系列文章的第八篇,这个系列的文章是对网上现有的面
试题做一个规整,以方便用户查看。本文主要有:类和结构的区别,取消一个窗
体的关闭,如何启动另一个程序等等
关键词:.NET 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007112301.html
内容正文:

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.谈谈类和结构的区别?
最大区别一个是引用类型,一个是值类型 默认成员访问为 public 是另外一个区

1. 在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的
句柄(请列举)。
this(C#) Me(vb.net).
2 在.net(C# 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;
}
}
3. 在.net(C# or vb.net)如何启动另一个程序。process
4. 在.net(C# or vb.net)中如何取消一个窗体的关闭
private void Form1_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}
5. 在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close 有什么不同?
答案:一个是退出整个应用程序,一个是关闭其中一个 form
6. 在 C#中有一个 double 型的变量,比如 10321.5,比如 122235401.21644,作为
货 币 的 值 如 何 按 各 个 不 同 国 家 的 习 惯 来 输 出 。 比 如 美 国 用 $10,321.50 和
$122,235,401.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);
=============================================================
=============================================================
内容摘要:.net 面试题系列文章第七篇,考察了一下知识点:private、protected、
public、 internal 修饰符,ASP.NET 页面之间传递值的几种方式,override 与重载的
区别,.net 的错误处理机制是什么,C#中接口和类的异同等
关键词:.NET 面试题 asp.net 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007110301.html
内容正文:

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。


private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继
承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一
命名空间内可以访问。
2.写出一条 Sql 语句: 取出表 A 中第 31 到第 40 记录(SQLServer, 以自动增长
的 ID 作为主键, 注意:ID 可能不是连续的。)
select top 10 * from A where id not in (select top 30 id from A)
解 2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )
as A)

3.列举 ASP.NET 页面之间传递值的几种方式。


1.使用 QueryString, 如....?id=1; response. Redirect()....
2.使用 Session 变量
3.使用 Server.Transfer

4.请说明在.net 中常用的几种页面间传递参数的方法,并说出他们的优缺点。
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype="hidden" 简单,可能被伪造
url 参数简单,显示于地址栏,长度有限
数据库稳定,安全,但性能相对弱

5.override 与重载的区别
Override 用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型
的参数

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

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

8.DataReader 和 DataSet 的异同


DataReader 和 DataSet 最 大 的 区 别 在 于 ,DataReader 使 用 时 始 终 占 用
SqlConnection, 在 线 操 作 数 据 库 .. 任 何 对 SqlConnection 的 操 作 都 会 引 发
DataReader 的异常..因为 DataReader 每次只在内存中加载一条数据,所以占用的
内存是很小的.. 因为 DataReader 的特殊性和高性能.所以 DataReader 是只进的..
你读了第一条后就不能再去读取第一条了..
DataSet 则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据
库连接..因为 DataSet 将数据全部加载在内存中.所以比较消耗内存...但是确比
DataReader 要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...

9.在 c#中 using 和 new 这两个关键字有什么意义,请写出你所知道的意义?


Using 引入一个名子空间,或在使用了一个对像后自动调用其 IDespose,New
实例化一个对像,或修饰一个方法,表此方法完全重写此方法

10.在下面的例子里
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
=============================================================
=============================================================

容摘要:几道.net 方面的面试题主要考查了这些知识点:DataGrid 控件的一些常


用事件,ASP.NET 应用程序中怎样统一处理错误 ,数据库连接字符串,如何调用
Xml Web Service 等
关键词:.NET 面试题 c#面试题 asp.net 面试题
本文地址:http://www.teecool.com/post/2007071306.html
内容正文:

22.您要创建一个显示公司员工列表的应用程序。您使用一个 DataGrid 控件显示


员工的列表。您打算修改这个控件以便在这个 Grid 的 Footer 显示员工合计数。请
问您应该怎么做?( C? )

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


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

23. 您要创建 ASP.NET 应用程序用于运行 AllWin 公司内部的 Web 站点,这个应


用程序包含了 50 个页面。您想要配置这个应用程序以便当发生一个 HTTP 代码
错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些
目标,您应该怎么做?(多选)( CD )
  A.在这个应用程序的 Global.asax 文件中创建一个 Application_Error 过程去
处理 ASP.NET 代码错误。
  B.在这个应用程序的 Web.config 文件中创建一个 applicationError 节去处理
ASP.NET 代码错误。
  C.在这个应用程序的 Global.asax 文件中创建一个 CustomErrors 事件去处理
HTTP 错误。
  D.在这个应用程序的 Web.config 文件中创建一个 CustomErrors 节去处理
HTTP 错误。
  E.在这个应用程序的每一页中添加一个 Page 指示符去处理 ASP.NET 代码错
误。
  F. 在这个应用程序的每一页中添加一个 Page 指示符去处理 ASP.NET HTTP
错误。

24. 您的公司有一个 DB Server,名为 AllWin,其上装了 MS SQLSERVER 2000。


现在需要您写一个数据库连接字符串,用以连接 AllWin 上 SQL SERVER 中的
一个名为 PubBase 实例的 Test 库。请问,应该选择下面哪一个字符串?( B )
    A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated
Security=SSPI”
    B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security=
SSPI”
    C. “Data Source= AllWin \PubBase;Initial Category=PubBase;Integrated
Security= SSPI”
  D. “Data Source= AllWin \ PubBase;Database=Test;Integrated Security= SSPI”

25. 您为 AllWin 公司创建了一个 ASP.NET 应用程序。这个应用程序调用一个


Xml Web Service 。这个 Xml Web Service 将返回一个包含了公司雇员列表的
DataSet 对象。请问您该如何在这个程序中使用这个 Xml Web Service?( ? )
  A.在“引用”对话框的.Net 标签中选择 System.Web.Services.dll。
  B.在“Web 引用”对话框中输入这个 XML Web service 的地址。
    C. 在 您 的 Global.asax.cs 中 添 加 一 条 using 语 句 并 指 定 这 个 XML Web
service 的地址。
  D.在您的 Global.asax.cs 中写一个事件处理器导入这个 Xml Web Service 相
应的 .wsdl 和 .disco 文件。

26. 您要创建一个 ASP.NET 应用程序在 DataGrid 控件中显示一个经过排序的列


表。产品数据被存放于一个名为 PubBase 的 Microsoft SQL Server 数据库。每个产
品的主键是 ProductID,Numeric 型并且每个产品有一个字母描述字段,名为
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 属 性 设 置 为 “ ProductName DESC” 。 然 后 将 这 个 DataView 对 象 绑 定 到
DataGrid 控件。
  C. 将 DataGrid 控件的 AllowSorting 属性设置为 True,并将 DataGridColumn
的 SortExpression 属性设置为 “ProductName DESC”.以显示 ProductName。然后将
这个 DataTable 对象绑定到 DataGrid 控件。
    D. 将 DataTable 对 象 的 DisplayExpression 属 性 设 置 为 “ ORDER BY
ProductName DESC”.。然后将这个 DataTable 对象绑定到 DataGrid 控件。

76.C#代码实现,确保 windows 程序只有一个实例(instance)


///<summary>
///应用程序的主入口点。
///</summary>
[STAThread]
staticvoid Main()
{
//防止程序多次运行
if(!OneInstance.IsFirst("GetPayInfo"))
{
MessageBox.Show ("警告:程序正在运行中! 请不要重复打开程序!可在
右 下 角 系 统 栏 找 到 !"," 程 序 错 误 提
示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
Application.Run(new Form1());
}
// ******************* 防止程序多次执行 **************************
publicabstractclass OneInstance
{
///<summary>
///判断程序是否正在运行
///</summary>
///<param name="appId">程序名称</param>
///<returns>如果程序是第一次运行返回 True,否则返回 False</returns>
publicstaticbool IsFirst(string appId)
{
bool ret=false;
if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)
{
CreateMutex(IntPtr.Zero,0,appId);
ret=true;
}
return ret;
}
[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr OpenMutex(
uint dwDesiredAccess, // access
int bInheritHandle, // inheritance option
string lpName // object name
);

[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr CreateMutex(
IntPtr lpMutexAttributes, // SD
int bInitialOwner, // initial owner
string lpName // object name
);
}
==========================================================
==========================================================
容摘要:本文依然是一些.net 方面的基础知识面试题,包括:ASP.NET 应用程
序题目,const 与 readonly 的区别,属性与索引器的区别。
关键词:c#面试题 .NET 面试题 asp.net 面试题
本文地址:http://www.teecool.com/post/2007102401.html
内容正文:

18.请叙述属性与索引器的区别。
属性 索引器
通过名称标识。 通过签名标识。
通过简单名称或成员访问来访问。 通过元素访问来访问。
可以为静态成员或实例成员。 必须为实例成员。
属性的 get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形
参表。
属性的 set 访问器包含隐式 value 参数。 除了 value 参数外,索引器的
set 访问器还具有与索引器相同的形参表。

19.请叙述 const 与 readonly 的区别。


每一个 class 至多只可以定义一个 static 构造函数,并且不允许增加访问级别关
键字,参数列必须为空。
为了不违背编码规则,通常把 static 数据成员声明为 private,然后通过
statci property 提供读写访问。
const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值
不能被修改。常数声明引入给定类型的一个或多个常数。
const 数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因
为它是在编译时就需要完全评估。
const 成员可以使用另一个 const 成员来初始化,前提是两者之间没有循环
依赖。
readonly 在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把
object 的初始化动作推迟到运行期进行。
readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中
初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构
造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而
readonly 字段可用于运行时常数。
  readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的
构造函数里面。

21.您需要创建一个 ASP.NET 应用程序,公司考虑使用 Windows 身份认证。


  所有的用户都存在于 AllWin 这个域中。您想要使用下列认证规则来配置这
个应用程序:
    a、 匿名用户不允许访问这个应用程序。
    b、 所有雇员除了 Tess 和 King 都允许访问这个应用程序。
  请问您应该使用以下哪一个代码段来配置这个应用程序?( A )
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>
============================================================
=============================================================
容摘要:本文主要列了写 c#.net 方面的基础知识面试题,主要包括:IDisposable
接口,跨语言互用性,String 类与 StringBuilder 类的区别,int 的基类,ref 和 out 的区
别以及抽象类的知识。
关键词:.NET 面试题 asp.net 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007071305.html
内容正文:8.以下代码段中能否编译通过?请给出理由。
try
{
}
catch(FileNotFoundException e1)
{
}
catch(Exception e2)
{
}
catch(IOException e3)
{
}
catch
{
}
9.对于一个实现了 IDisposable 接口的类,以下哪些项可以执行与释放或重置非
托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close B.DisposeC.Finalize
D.using E.Quit
10.Net 依赖以下哪项技术实现跨语言互用性?( C )
A.CLR B.CTS C.CLS D.CTT
11.请问: String 类与 StringBuilder 类有什么区别?为什么在.Net 类库中要同时存
在这 2 个类?(简答)
如果要操作一个不断增长的字符串,尽量不用 String 类,改用 StringBuilder 类。
两个类的工作原理不同:String 类是一种传统的修改字符串的方式,它确实可以
完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET 框架下,这
个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的
String 对象,然后创建一个 String 对象,并读取内存中的数据赋给该对象。这一
来二去的,耗了不少时间。而使用 System.Text 命名空间下面的 StringBuilder 类
就不是这样了,它提供的 Append 方法,能够在已有对象的原地进行字符串的修
改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要
对 某 个 字符 串进 行 大 量的 添加 操作 , 那 么 StringBuilder 类所 耗费 的时 间和
String 类简直不是一个数量级的。
12.以下哪个类是 int 的基类?( )
A.Int32 B.Object C.ValueType D.Int16
二、C# 部分*

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


A.方法 B.属性 C.字段 D.事件 E.索引器
F.构造函数 G.析构函数
14.以下关于 ref 和 out 的描述哪些项是正确的?(多选) ( ACD )
A.使用 ref 参数,传递到 ref 参数的参数必须最先初始化。
B.使用 out 参数,传递到 out 参数的参数必须最先初始化。
C.使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。
D.使用 out 参数,必须将参数作为 out 参数显式传递到方法。
15.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员
可访问性含义的正确描述?( B )
A.public B.protected C.internal D.protected internal
16.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
17.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.MethodAB.Class2.MethodA
C.Class1.MethodAD.都不是
=============================================================
=============================================================
容摘要:本文是.net 面试题系列的第三篇,该系列文章是对网上所有.net 面试题
的收重新集整理後的系列文章,囊括了 c#面试题,vb.net 面试题,asp.net 面试
题。有基础知识相关的问题,也有进阶级别的问题,是参加.net 面试的求职者值
得一看的系列文章。本文主要列了一些.net 基础方面的选择题。
关键词:.NET 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007071402.html
内容正文:

选择题

11.接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或
私有的成员变量。
a)方法、属性、索引器和事件; b)方法、属性信息、属性; c)索引器和字段; d)
事件和字段;
12.ASP.NET 框架中,服务器控件是为配合 Web 表单工作而专门设计的。服务器
控件有两种类型,它们是(A )
a)HTML 控件和 Web 控件 b)HTML 控件和 XML 控件 c)XML 控件和 Web 控件
d)HTML 控件和 IIS 控件
13.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)以上皆非
14. 在 ADO.NET 中 , 对 于 Command 对 象 的 ExecuteNonQuery() 方 法 和
ExecuteReader()方法,下面叙述错误的是(C)。
a)insert、update、delete 等操作的 Sql 语句主要用 ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行 Sql 语句所影响的行数。
c)Select 操作的 Sql 语句只能由 ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个 DataReder 对象;
15.下列 ASP.NET 语句(b)正确地创建了一个与 SQL Server 2000 数据库的连接。
a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated
Security = SSPI; Initial Catalog = myDB”);
b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated
Security = SSPI; Initial Catalog = myDB”);
c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated
Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated
Security = SSPI; Initial Catalog = myDB”);
16.Winform 中,关于 ToolBar 控件的属性和事件的描述不正确的是(D)。
a)Buttons 属性表示 ToolBar 控件的所有工具栏按钮
b)ButtonSize 属性表示 ToolBar 控件上的工具栏按钮的大小,如高度和宽度
c)DropDownArrows 属性表明工具栏按钮(该按钮有一列值需要以下拉方式显
示)旁边是否显示下箭头键
d)ButtonClick 事件在用户单击工具栏任何地方时都会触发
17.在 ADO.NET 中执行一个存储过程时,如果要设置输出参数则必须同时设置
参数的方向和(B ),必要时还要设置参数尺寸。
a)大小; b)上限; c)初始值; d)类型;
18.如果将窗体的 FormBoderStyle 设置为 None,则( B)。
a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小;
c)窗体有边框但不能调整大小; d)窗体是透明的;
19.如果要将窗体设置为透明的,则( B)
a)要将 FormBoderStyle 属性设置为 None ; b)要将 Opacity 属性设置为小于
100%得值;
c)要将 locked 属性设置为 True; d)要将 Enabled 属性设置为 True;
20.下列关于 C#中索引器理解正确的是(B/C )
a)索引器的参数必须是两个或两个以上 b)索引器的参数类型必须是整数型
c)索引器没有名字 d)以上皆非
21.下面描述错误的是( C/D)。
a)窗体也是控件; b)窗体也是类; c)控件是从窗体继承来的; d)窗体的父类是
控件类;
22.要对注册表进行操作则必须包含( D)。
a)System.ComponentModel 命名空间; b)System.Collections 命名空间;
c)System.Threading 命名空间; d)Microsoft.Win32 命名空间;
23.要创建多文档应用程序,需要将窗体的(D )属性设为 true。
a)DrawGrid ; b)ShowInTaskbar ; c)Enabled ;
d)IsMdiContainer;
24.如果设 treeView1=new TreeView(),则 treeView1.Nodes.Add("根节点")返回的
是一个 ()类型的值。
a)TreeNode;
b)int;
c)string;
d)TreeView;
25.下面关于 XML 的描述错误的是(D)。
a)XML 提供一种描述结构化数据的方法;
b)XML 是一种简单、与平台无关并被广泛采用的标准;
c)XML 文档可承载各种信息;
d)XML 只是为了生成结构化文档;
1.装箱、拆箱操作发生在: ( C )
A.类与对象之间 B.对象与对象之间
C.引用类型与值类型之间 D.引用类型与引用类型之间
2.用户类若想支持 Foreach 语句需要实现的接口是: ( A )
A.IEnumerableB.IEnumerator
C.ICollectionD.ICollectData
3..Net Framework 通过什么与 COM 组件进行交互操作?( C )
A.Side By SideB.Web Service
C.InteropD.PInvoke
4..Net 依靠以下哪一项技术解决 COM 存在的 Dll Hell 问题的?( A )
A.Side By SideB.Interop
C.PInvokeD.COM+
5.装箱与拆箱操作是否是互逆的操作?( B )
A.是 B.否
6.以下哪个是可以变长的数组?( D )
A.Array B.string[]
C.string[N] D.ArrayList
7.用户自定义异常类需要从以下哪个类继承:( A )
A.Exception B.CustomException
C.ApplicationException D.BaseException
=============================================================
=============================================================
摘要:本文是.net 面试题系列的第二篇,该系列文章是对网上所有.net 面试题的
收重新集整理後的系列文章,囊括了 c#面试题,vb.net 面试题,asp.net 面试题。
有基础知识相关的问题,也有进阶级别的问题,是参加.net 面试的求职者值得
一看的系列文章。本文主要列了一些.net 基础方面的选择题。

关键词:.NET 面试题 c#面试题


本文地址:http://www.teecool.com/post/2007101401.html
内容正文:
选择:
(1) 以下叙述正确的是: B C
A. 接口中可以有虚方法。B. 一个类可以实现多个接口。 C. 接口不能被实例化。
D. 接口中可以包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:B C D
A. ExecuteNonQuery B. ExecuteScalar C. Fill D.
ExecuteReader
2.对于一个实现了 IDisposable 接口的类,以下哪些项可以执行与释放或重置非
托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close B.Dispose C.Finalize
D.using E.Quit

3.以下关于 ref 和 out 的描述哪些项是正确的?(多选) ( ACD )


A.使用 ref 参数,传递到 ref 参数的参数必须最先初始化。
B.使用 out 参数,传递到 out 参数的参数必须最先初始化。
C.使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。
D.使用 out 参数,必须将参数作为 out 参数显式传递到方法。
1.在对 SQL Server 数据库操作时应选用(A)。
a)SQL Server .NET Framework 数据提供程序;
b)OLE DB .NET Framework 数据提供程序;
c)ODBC .NET Framework 数据提供程序;
d)Oracle .NET Framework 数据提供程序;
2.下列选项中,(C)是引用类型。
a)enum 类型 b)struct 类型 c)string 类型 d)int 类型
3.关于 ASP.NET 中的代码隐藏文件的描述正确的是(C)
a)Web 窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程
逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用 C#
创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有 Web 窗体页的代码隐藏文件都被编译成.EXE 文件。
c)项目中所有的 Web 窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)
文件。
d)以上都不正确。
4.以下描述错误的是(A)
a)在 C++中支持抽象类而在 C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在 CPP 文件中定义类的成员,在 C#中没
有头文件并且在同一处声明和定义类的成员。
c)在 C#中可使用 new 修饰符显式隐藏从基类继承的成员。
d)在 C#中要在派生类中重新定义基类的虚函数必须在前面加 Override。
5.C#的数据类型有(A)
a)值类型和调用类型; b)值类型和引用类型;c)引用类型和关系类型;d)关系类
型和调用类型;
6.下列描述错误的是(D)
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
7.在 DOM 中,装载一个 XML 文档的方法(D)
a)save 方法 b)load 方法 c)loadXML 方法 d)send 方法
8.下列关于构造函数的描述正确的是(C)
a)构造函数可以声明返回类型。
b)构造函数不可以用 private 修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
9.以下是一些 C#中的枚举型的定义,其中错误的用法有()
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 }
10.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)越界
=============================================================
=============================================================
摘要:.net 面试题系列是对网上所有.net 面试题的收重新集整理後的系列文章,
囊括了 c#面试题,vb.net 面试题,asp.net 面试题。有基础知识相关的问题,也有
进阶级别的问题,是参加.net 面试的求职者值得一看的系列文章。本文主要列了
一些.net 基础方面的填空题,希望对大家有帮助。
关键词:.NET 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007071302.html
内容正文:
1 (1)面向对象的语言具有__继承性_性、_封装性_性、_多态性 性。
(2) 能 用 foreach 遍 历 访 问 的 对 象 需 要 实 现 _ IEnumerable 接 口 或 声 明 _
GetEnumerator 方法的类型。1.c#中的三元运算符是__?:__
2.当整数 a 赋值给一个 object 对象时,整数 a 将会被__装箱___?
3.类成员有__3__种可访问形式?
4.public static const int A=1; 这段代码有错误么?是什么? const 成员都是 static
所以应该去掉 static
5.float f=-123.567F;
int i=(int)f;
i 的值现在是_-123____?
6. 利 用 operator 声 明 且 仅 声 明 了 == , 有 什 么 错 误 么 ? 要 同 时 修 改 Equale 和
GetHash() ? 重载了"==" 就必须重载 "!="
7.委托声明的关键字是___ delegate ___?
8.用 sealed 修饰的类有什么特点?不可被继承
9.在 Asp.net 中所有的自定义用户控件都必须继承自_ System.Web.UI.UserControl
_______?
10.在.Net 中所有可序列化的类都被标记为__[serializable]___?
11.在.Net 托管代码中我们不用担心内存漏洞,这是因为有了_ gC __?
12.下面的代码中有什么错误吗?_ abstract override 是不可以一起修饰______
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F();
}
13.当类 T 只声明了私有实例构造函数时,则在 T 的程序文本外部,_不可以_
(可以 or 不可以)从 T 派生出新的类,_不可以_(可以 or 不可以)直接创建
T 的任何实例。
14.下面这段代码有错误么?case():不行 default;
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault;
CaseTwo();
break;
}
15.在.Net 中,类 System.Web.UI.Page 可以被继承么?可以
=============================================================
=============================================================
内容摘要:session 喜欢丢值且占内存,Cookis 不安全,请问用什么办法代替这
两种原始的方法...

关键词:.NET 面试题 Oracle 面试题


本文地址:http://www.teecool.com/post/2007092801.html
内容正文:

某软件公司.net 面试题

.net 面试题

1:a=10,b=15,在不用第三方变题的前提下,把 a,b 的值互换


2:已知数组 int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并
返回数组

3:请简述面向对象的多态的特性及意义!

4:session 喜欢丢值且占内存,Cookis 不安全,请问用什么办法代替这两种原


始的方法

5:对数据的并发采用什么办法进行处理较好。

6:已知 Oracle 数据库有 GD 和 ZS 两个数据库,GD 数据库 v_s 表有数据写入时,


从 v_s 表中提取最新数据到 ZS 数据库的 D_E 表中。请问用什么办法解决这一问
题?如果又碰到不能互访的问题时,又用什么办法解决?

7:已知 Oracle 数据库 a,b


现在在 a 用户权限下,访问 b 数据库 sql 语句为 select a.* From b a,请改正这一句
Sql 的写法

8:当对数据库进行海量级的数据插入时,数据库出现报错,错误原因可能有哪
些,以你的经验谈谈你的解决办法

9:算法分析
AH 20060625 12 44 01 CAD001
AH 20060625 12 44 01 CAD001
AH 20060625 13 44 02 CAD001
AH 20060625 14 44 03 CAD001
说明:第二列表示日期,第三列表示温度,第四列表示水位,第五列表示流量,
第 6 列表示水位测站编码,每一列表示一个字段
很明显第一条数据和第二条数据重复,然数据表中有主键和外键的约束,是不
允许有重复的数据存在的,请构造算法将重复的数据 Del 掉
(公司 MS)
=============================================================
=============================================================
容摘要:1。用 C#实现以下功能
a 产生一个 int 数组,长度为 100,并向其中随机插入 1-100,并且不能重复...

关键词:.NET 面试题 c#面试题


本文地址:http://www.teecool.com/post/2007092702.html
内容正文:

.net 面试题

1。用 C#实现以下功能
a 产生一个 int 数组,长度为 100,并向其中随机插入 1-100,并且不能重复。
b 对上面生成的数组排序,需要支持升序、降序两种顺序
2。请说明在.net 中常用的几种页面间传递参数的方法,并说出他们的优缺点。
3。请说明.net 中的错误处理机制,并举例
4。请说出强名的含义
5。请列出 C#中几种循环的方法,并指出他们的不同
6。请指出.net 中所有类型的基类
7。请指出 GAC 的含义
8。SQL SREVER 中,向一个表中插入了新数据,如何快捷的得到自增量字段的
当前值

一:
List<int> L=new List<int>();
Random random = new Random();
for (int i = 1; i <= 100; i++)
{
if (L.IndexOf(i) < 0)
{
L.Add(random.Next(1,100));
}
}
L.Reverse();
L.Sort();
二:Cookie (不安全) Session(可靠,可用语不支持 HTTP Cookie 浏览器)
Application(效率低) 查询字符串(方便) DataBase(安全,强)
服务器控件持有有数据的页面间传输 等等,这些说明到处都有,不说了。。。

三:异常是从 Exception 类类继承的对象。异常从发生问题的代码区域引发,然


后沿堆栈向上传递,直到应用程序处理它或程序终止。
try
{ //执行代码,不确定是否会出错 }
catch
{ //出错处理 }
finally
{ //无论怎样,都要执行 }
四:垃圾回收的原理是根据是否空引用,和该数据类型占用内存来判断该收回多少
内存.强类型说白就是必须要有个数据类型.
五:这个太简单.不说了
六:object
七:全局访问缓存
八:
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'
=============================================================
=============================================================
摘要:1、delegate 是引用类型还是值类型?enum、int[]和 string 呢...

关键词:.NET 面试题 c#面试题


本文地址:http://www.teecool.com/post/2007091602.html
内容正文:

C#面试题语法考察

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

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

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


吗?

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

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

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

4 、 请 指 出 C# 中 是 否 有 下 列 关 键 字 ?
virtual、sealed、abstract、import、as、in、goto、final、Const、signed、String(提示,仅指
出 C#中没有的即可)(难度系数 50%)。

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

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


行时机。

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

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


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

7、object 是 C#的关键字吗?请指出 C#中有哪些类型关键字,如 int、float。(提示,


写得越多越好)。

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

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


<param>标签呢?

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

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

答案:特性(Attribute)
=============================================================
=============================================================
容摘要:英文题目(可以用中文回答)
Please describe the different between XML,XSD,XSL through their definition.

关键词:.NET 面试题 c#面试题 asp.net 面试题


本文地址:http://www.teecool.com/post/2007090303.html
内容正文:

英文题目(可以用中文回答)

1) Please describe the different between XML,XSD,XSL through their definition.

2 ) Do you know the Persistent Object in J2EE;if yes ,please describe some
mechanism of it.
3) Please describe some famous arithmetic as many as you know, one of arithmatics
to explain if possible.

智力逻辑题

1.某一密码仅使用 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

问题二:如果能得到的字母是 K、L、M,那么能够形成的两个字母长的密码单词
的总数是多少?

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

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

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

问题四:3 个相同的字母可以构成的不同密码单词的总数是多少?

A) 1 个 B)2 个 C) 3 个 D) 4 个

问题五:单词密码 MMLLOKN 可以通过下列变成另一个密码单词,除了:

A) 用 N 代替每个 L B)用 O 代替每一个 M C)用 O 代替 D)把 O 移到 N 的左边

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

技术编程题
1) 请用 VB(或者 c#)语言来描述一下 blowfish 的加密解密算法。如果不行,
可以用中文+图的形式来说明。如果不了解 blowfish 算法,请描述一下自己比较
熟悉的加密解密算法。
2) 如果你是一位软件架构师,您将如何去搭建一个符合 n-tie 的架构?并请描
述一下您搭建的每一层的作用。(注意:请您考虑项目中有 WebService 的情
况)
3) 请用代码简单描述一下 Singleton、抽象工厂、Bridge、Composite(任选三个)
的设计模式的概念。

情景分析题

假如你是一位测试工程师,你的好朋友是一位软件工程师,你们都在同一部门
里。一次,你发现了一个重大的 bug,该 bug 已经对公司的产品产生致命的影响。
如果你及时报告了你的上司,会受到嘉奖,也许会提拔成为经理,然而如果你
这么做了,你将损失一位挚友,因为他要被老板辞退。相反,如果你帮你朋友隐
瞒了 bug,那么公司的产品有很大的安全隐患,若被人攻击,那么公司的损失
很大,将对不起器重自己的公司和老板,这时你该怎么做?
=============================================================
======================
=============================================================
=======================
容摘要:如果你的简历上面写 “熟悉/了解 C#”,那么你就应该能够回答下面的
这些基础问题。我将给出自己...
关键词:c#面试题 .NET 面试题 asp.net 面试题
本文地址:http://www.teecool.com/post/2007090202.html
内容正文:

如果你的简历上面写 “熟悉/了解 C#”,那么你就应该能够回答下面的这些基础


问题。我将给出自己的简要答案以供参考。欢迎讨论。

传入某个属性的 set 方法的隐含参数的名称是什么?


value,它的类型和属性所声名的类型相同。
如何在 C#中实现继承?
在类名后加上一个冒号,再加上基类的名称。
C#支持多重继承么?
不支持。可以用接口来实现。
被 protected 修饰的属性/方法在何处可以访问?
在继承或间接继承与这个类的子类中可以访问。
私有成员会被继承么?
会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继
承了。
请描述一下修饰符 protected internal。
被 protected internal 修饰的属性/方法只能在它的在同一个程序集(Assembly)
中的子类被访问。
C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函
数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以
需要手动实现那个无参数构造函数。
C#中所有对象共同的基类是什么?
System.Object.
重载和覆写有什么区别?
重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类
方法行为的实现。
在方法定义中,virtual 有什么含意?
被 virtual 修饰的方法可以被子类覆写。
能够将非静态的方法覆写成静态方法么?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将 virtual 改为
override。
可以覆写私有的虚方法么?
不可以,甚至子类中无法访问父类中的私有方法。
能够阻止某一个类被其他类继承么?
可以,使用关键字 sealed。
能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
可以,标记这个类为 public,并标记这个方法为 sealed。
什么是抽象类(abstract class)?
一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。
继承类只有实现过所有抽象类的抽象方法后才能被实例化。
何时必须声明一个类为抽象类?
当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
接口(interface)是什么?
只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被
实现。
为什么不能指定接口中方法的修饰符?
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护
没有意义。他们默认为公有方法。
可以继承多个接口么?
当然。
那么如果这些接口中有重复的方法名称呢?
这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有
问题的。
接口和抽象类的区别是什么?
接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以
有方法的实现,也可以指定方法的访问修饰符。
如何区别重载方法?
不同的参数类型,不同的参数个数,不同的参数顺序。
const 和 readonly 有什么区别?
const 关键字用来声明编译时常量,readonly 用来声明运行时常量。
System.String 和 System.StringBuilder 有什么区别?
System.String 是不可变的字符串。System.StringBuilder 存放了一个可变的字符串,
并提供一些对这个字符串修改的方法。
(熟悉了解)
=============================================================
=============================================================
(!!貌似 JP)
关键词:.NET 面试题 c#面试题
本文地址:http://www.teecool.com/post/2007090201.html
内容正文:

(澄清一下,我发帖的目的不是用来专门给人评价这些问题的好坏的,实际上
我所在的公司就考察这些问题。而能够基本上答出来的可以说百里挑一。如果各
位觉得这些问题很简单,那么基本上在.NET 面试环节就没有什么问题了,同时
欢迎提供一些更多的问题。如果还有些不知道,那么不妨静下心来思考一下(或
者用 15 秒搜索一下),没有必要花太多时间来攻击题目的合理性。毕竟,几乎
所有的面试都是这样。如果没法改变,我们还是学着适应吧。)

如果你的简历上面说“精通.NET”,那么下面的问题应该大都可以给出较完美的
答案。我会稍后给出一些我的想法,还请各位不吝指正并参与讨论。也欢迎提供
给我更多的问题。
注:对于每个判断是非问题,都要考虑“为什么”与“为什么不”。

Thread 和 Process 之间有什么区别?.NET 新引入了 Application Domain 的概念,


这样他们三个之间有什么区别?引入了 Application Domain 会带来一些潜在的问
题么?
Windows Service 与普通的 EXE 在执行过程中有什么区别?
一个进程可以访问的 Windows 地址空间有多大?等于系统的虚拟内存大小么?
这两方面将对系统的设计产生什么样的影响?
EXE 和 DLL 之间的区别是什么?在系统设计中应该如何选择使用它们?
普通的 EXE 与.NET EXE 的执行过程有什么不同?
什么是弱类型,什么是强类型?在系统设计中应该首先考虑使用哪种类型?
PDB 文件是作什么用的?里面包含了什么信息?
Cycloramic Complexity 是什么?为什么它很重要?
为创建一个 critical section 以访问某个变量书写一个标准的 lock() 并加上 double
check。
为某个对象实现标准的 Dispose 模式。
什么是 FullTrust? 存在于 GAC 中的 assembly 拥有 FullTrust 么?
下面这个命令是做什么的?gacutil /l | find /i “system”
下面这个命令是作什么的? sn -t something.dll
跨防火墙的 DCOM 必须打开哪个端口?端口 135 是用来做什么的?
有什么办法可以与现有 unmanaged code 集成?在集成的时候应该考虑什么问题?
简要解释一下 OOP 与 SOA 都是用来作什么的?
XmlSerializer 是如何工作的?进程运行 XmlSerializer 时候需要什么样的 ACL 权
限?
在系统设计时,何时应该使用 try catch?何时需要避免使用?
Debug.Write()和 Trace.Write()之间有什么区别?二者分别应该用于何处?
Debug Build 和 Release Build 有什么区别?在执行效率上有什么明显的区别么?
JIT 是针对 Assembly 还是 Method 发生的?解释一下为什么.NET 的设计者要这
样做?
简要描述一下 GC 的执行过程。
应该如何选择使用 abstract class 还是 interface?
在设计一个自定义类型时应如何选择使用 Value Type 还是 Reference Type?
对于 Value Type 和 Reference Type,a.Equals(b)的默认实现方式有什么不同?
.NET 中为什么不提供默认的 deep copy?如果需要,要如何实现 deep copy?
相对于.NET 1.1,.NET2.0 为了避免过度的 boxing/unboxing 造成的系统开销提供
了哪些支持?
String 是 Value Type 还是 Reference Type?为什么.NET 中的 String 对象被设置成
immutable?
如果您能较完美的回答其中大多数问题,你已经可以毫无疑问的宣称自己“精通.
NET”了。祝各位好运!
=============================================================
=============================================================

Vous aimerez peut-être aussi