首页 > 代码库 > .net 综合面试题
.net 综合面试题
想换工作的朋友可以试着做一下:
1. CLR、CTS、CLS 分别是什么意思?
公共语言运行库,通用类型系统,公共语言规范
2. 什么是基元类型?
由编译器直接支持的数据类型称为基元类型.
例如:C#中的int,string等等就是,实际运行过程中被映射为FCL中对应的类型(java中叫做包装类)如:System.Int32,System.String.
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/dv_fxintro/html/7e4c5921-955d-4b06-8709-101873acf157.htm
3. 值类型和引用类型的区别是什么?为什么要设计值类型?值类型会被GC回收吗?值类型是否能在托管堆分配?
1. 如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值类型。但 string 数据类型除外,它是引用类型。
值类型的内容存储在堆栈上分配的内存中
引用类型的变量又称为对象,可存储对实际数据的引用
使用栈效率较高,但值类型的生命周期有限,不适合在不同类之间共享数据。
相反,引用类型(例如,类或数组的实例)在另一个称为“堆”的内存区域中分配
仅当 C# 的垃圾回收系统确定不再需要该引用类型变量内存时,才进行回收。声明引用类型需要更多系统开销,但它们的优点是可以从其他类进行访问
2. 设计值类型为了效率高,快速分配空间
3.它在栈上,不会被GC回收.(GC只回收托管堆上的内容)
4.不可以,除非将它装箱.
4. Equals、==、ReferenceEquals 如何区别使用?
Equals确定指定的实例是否被视为相等,但是如果为空就不能被调用,常被重写override
==:对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于 string 以外的引用类型,如果两个操作数引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。
ReferenceEquals: 确定指定的 Object 实例是否是相同的实例,不会被重写.基础类型值相等时返回false.
例子:
static void Main(string[] args)
{
int s1 = 10;
int s2 = 10;
Console.WriteLine(s1.Equals(s2));
Console.WriteLine(s1 == s2);
Console.WriteLine(ReferenceEquals(s1, s2));
string s1 = null;
string s2 = null;
Console.WriteLine(s1.Equals(s2));
Console.WriteLine(s1 == s2);
Console.WriteLine(ReferenceEquals(s1, s2));
string s1 = "A";
string s2 = "A";
Console.WriteLine(s1.Equals(s2));
Console.WriteLine(s1 == s2);
Console.WriteLine(ReferenceEquals(s1, s2));
C s1 = new C();
C s2 = new C();
Console.WriteLine(s1.Equals(s2));
Console.WriteLine(s1 == s2);
Console.WriteLine(ReferenceEquals(s1, s2));
}
}
class C
{
public int i = 10;
}
请仔细比较结果.
5. 什么是虚方法?如何理解多态?
虚方法就是用virtual修饰的方法.调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员.它是实现多态的途径之一.
通过多态,实现了对象的多样性,并且实现迟绑定,提高程序的灵活性.
6. overload 和 override 有什么区别?
Overload:c#没有该关键字,理解为重载,属于运行前,编译时的一种技术.是继承的范畴.
Override:是运行时技术,用它实现多态.
7. 基于接口编程的目的是什么?什么情况下使用接口,什么情况下使用抽象类?
基于接口编程的目的是为了提高程序的灵活性.
当一个类要准备继承多个类的时候,必须用接口,
当一个类需要被继承且有方法必须要被定义时,用抽象类.
8. 委托是什么意思?什么叫委托链?我们能在代码中继承 MulticastDelegate吗?
1.委托是通过对方法名的调用来调用方法的一种对象,委托类似于 C++ 函数指针,但它们是类型安全的。
委托允许将方法作为参数进行传递。委托可用于定义回调方法。
2.将多个委托链接在一起,供对象使用,构成委托链
3. MulticastDelegate 是一个特殊类。编译器和其他工具可以从此类派生,但是不能显式地从此类进行派生
9. 实现 Iterators 一般用到哪些接口?
IEnumerable, IEnumerator
10. 请写一个简单泛型类型,要求有两个泛型参数 T、K,其中 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;
}
}
}
8、简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。(10)
remoting是.net 中服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置,跨越machine, process, appdomain 进行方法调用的技术,对于三层结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM, Remoting可以利用TCP/IP,二进制传送提高效率.
Web Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。Web Service令基于组件的开发和web的结合达到最佳,基于组件的对象模型 . Web Service主要是可利用HTTP,穿透防火墙.
10 .请解释ASP。NET中以什么方式进行数据验证
Asp.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件,另还有一个集中验证信息处理控件
11. WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。
在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到服务器端.
只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件,模拟单击按钮时发生到服务器的往返行程.
12. WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
可以调用
例如:<asp:TextBox id="TextBox1" onclick="clientfunction();" runat="server"></asp:TextBox>或 TextBox1.Attributes.Add("onclick","clientfunction();")
<INPUT id="Button2" value="http://www.mamicode.com/Button" name="Button2"
runat="server" onclick="clientfunction();">
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" 表用运行时使用哪一个隐藏类.Web页面描述的是显示内容,而隐藏类描述的大多是c#的业务逻辑,
15. 什么是viewstate,能否禁用?是否所用控件都可以禁用?
Viewstate是保存页面标签状态的一种机制,EnableViewState属性设置为false即可禁用,理论上都可以禁用,但是一个页面总会有20个字节来保留页面标签的内容.
16. 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决(题意不清)
很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断
17. 请解释什么是上下文对象,在什么情况下要使用上下文对象
上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对象. (它封装有关HTTP 请求中的所有 HTTP 特定的信息,由于WEB程序以请求为基础的,所以通过这个可以访问请求页面的信息.)
18. 请解释转发与跳转的区别?
转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面,是服务器端行为,以前的request中存放的变量不会失效,就像把两个页面拼到了一起,asp.net中的Server.Transfer就是,地址栏不会改变内容。速度较快。
跳转就是指客户端的跳转,是客户端行为. Response.Redirect()就是。
1.请简述一下用Socket进行同步通讯编程的详细步骤
1、在应用程序和远程设备中使用协议和网络地址初始化套接字
2、在应用程序中服务器端通过指定端口和地址建立监听,服务器挂起等待
3、远程设备(客户端)发出连接请求 ,服务器激活
4、应用程序接受连接产生通信socket
5、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)
6、通讯结束,关闭应用程序和远程设备的Socket回收资源
13. 请解释web.config文件中的重要节点
appSettings包含自定义应用程序设置。
system.web 系统配置
compilation动态调试编译设置
customErrors自定义错误信息设置
authentication身份验证,此节设置应用程序的身份验证策略。
authorization授权, 此节设置应用程序的授权策略.
2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。 session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input type="hidden" 简单,可能被伪造
url参数简单,显示于地址栏,长度有限
数据库稳定,安全,但性能相对弱
Server.Transfer
3、.net的错误处理机制是什么
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的catch为止。
4、C#中接口和类的异同
接口和类都是引用类型,不同的是,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
4、DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能. DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
1. 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
using 引入一个命名空间,或在使用了一个对像后自动调用其IDispose,例如:
using(sqlConnection ….){}
new 实例化一个对像,或修饰一个方法,表示此方法重写父类同名方法
4.谈谈类和结构的区别?
类是引用类型,默认修饰符号是private
结构是值类型 默认成员访问为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类的静态方法Start
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,一个应用程序会包含多个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);
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次方
8.C#中的接口和类有什么异同。
答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
而类是负责功能的具体实现!
在类中也有抽象类的定义,抽象类与接口的区别在于:
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
但接口是一个行为的规范,里面的所有东西都是抽象的!
一个类只可以继承一个基类也就是父类,但可以实现多个接口
9.。net中读写数据库需要用到哪些类?他们的作用
答: sqlconnection,sqlcommand等都要用到.都在System.Data.SqlClient中(以sql数据源操作为例)
17.什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。这种相互通信采用的是XML格式的消息.常用在web服务,WCF等应用中.
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:公共语言运行时,在.Net环境下,各种编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与操作系统进行通信,而编程语言如C#.NET将尽量避免直接与操作系统直接通信,加强了程序代码的执行安全性,可以这样看:CLR就是具体的编程语言如:C#.NET与操作系统之间的翻译,同时它为具体的编程语言提供了许多资源,编程语言第一次编译会生成IL,IL的运行要依赖CLR.
IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
9.什么叫做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];
20.请叙述类与结构的区别。
重复,见前
序列化是将对象转换为容易传输的格式的过程。
ado.net
connection 连接对象
Command 命令对象,执行SQL命令与存储过程
DataReader 向前只读的数据流。
DataAdapadter 功能强大的适配器,支持增删改查的功能
DataSet 是数据集对象,相当与内存中的数据库,还可存放表这间的关系
.net身份验证
form Windows passport护照 none
反射:在运行中得到程序集的信息(包类型,及成员,反射提供了封装程序集、模块和类型的对象。)反射:在运行时找到有关对象、对象的类,方法和变量等信息。 System.Reflection
ORM O/R mapping 对象关系映射。
NEW的方法: new class Public New XX() New 约束指定的泛型
控件是.ascx扩展名。可以拖到不同的页面中调用。节省大量的手写代码
virtual 虚函数,
QueryString
Session
Server.Transfer
private 私有的成员类公为类自己内部使用
Protected 收保护的成员呀 为自己类和继承类使用
Public 共开类,为使用类共用
internal 在同一命名空间中使用
OOP 继承,封装,多态性
重写 overrid 派生类开基类同名与参数相同。盖掉前面的方法 继承的类方法与函数在基类相同这里被重写,名称相同
重载 函数或方法名相同,后面参数不同系统自动找到对应的值
把函数当着一个参数..委托
时间段 是多个线程一起运行.... 一个进程可以包括多个线程
时间点 cup只有一个线程占用
他是一个强类型与长期保存 与application 与session不一样呀.长期保存了
支持匿名用户,他配制存在Provider
System.Text.Encoding.Default.GetBytes(变量)
字码转换 转为比特码
(2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类型。1.c#中的三元运算符是__?:__
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 ___?
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 可以被继承么?可以
2. 不定项选择:
(1) 以下叙述正确的是: B C
B. 一个类可以实现多个接口。 C. 接口不能被实例化。
(2) 从数据库读取记录,你可能用到的方法有:B C D
B. ExecuteScalar C. Fill D. ExecuteReader
2.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close
B.Dispose
C.Finalize
3.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD )
A.使用ref参数,传递到ref参数的参数必须最先初始化。
C.使用ref参数,必须将参数作为ref参数显式传递到方法。
D.使用out参数,必须将参数作为out参数显式传递到方法。
1.在对SQL Server 数据库操作时应选用(A)。
a)SQL Server .NET Framework 数据提供程序;
2.下列选项中,(C)是引用类型。
a)enum类型 b)struct类型 c)string类型 d)int类型
3.关于ASP.NET中的代码隐藏文件的描述正确的是(C)
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
4.以下描述错误的是(A)
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有(B)
b)值类型和引用类型;
6.下列描述错误的是(D)
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
7.在DOM中,装载一个XML文档的方法(D)
b)load方法
8.下列关于构造函数的描述正确的是(C)
c)构造函数必须与类名相同
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)越界
11.接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;
b)方法、属性信息、属性;
c)索引器和字段;
d)事件和字段;
12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(A )
a)HTML控件和Web控件
13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( D)
a)<%@Register TagPrefix = “Mike” TagName = “Space2” Src = http://www.mamicode.com/“myX.ascx”%>
b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = http://www.mamicode.com/“myX.ascx”%>
c)<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = http://www.mamicode.com/“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数据库的连接。
b)SqlConnection con1 = new SqlConnection(“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)。
b)窗体没有边框但能调整大小;
19.如果要将窗体设置为透明的,则( B)
b)要将Opacity属性设置为小于100%得值;
20.下列关于C#中索引器理解正确的是(B/C )
b)索引器的参数类型必须是整数型
c)索引器没有名字
21.下面描述错误的是( C/D)。
a)窗体也是控件; b)窗体也是类;
22.要对注册表进行操作则必须包含( D)。
a)System.ComponentModel命名空间; b)System.Collections命名空间;
c)System.Threading命名空间; d)Microsoft.Win32命名空间;
23.要创建多文档应用程序,需要将窗体的(D )属性设为true。
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文档可承载各种信息;
1.装箱、拆箱操作发生在: ( C )
C.引用类型与值类型之间
2.用户类若想支持Foreach语句需要实现的接口是: ( A )
A.IEnumerableB.IEnumerator
C.ICollectionD.ICollectData
3..Net Framework通过什么与COM组件进行交互操作?( C )
A.Side By Side
B.Web Service
C.Interop
D.PInvoke
4..Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( A )
A.Side By Side
B.Interop
C.PInvoke
D.COM+
5.装箱与拆箱操作是否是互逆的操作?( B )
A.是B.否
6.以下哪个是可以变长的数组?( D )
A.Array B.string[]
C.string[N] D.ArrayList
7.用户自定义异常类需要从以下哪个类继承:( A )
A.Exception
8.以下代码段中能否编译通过?请给出理由。
try
{
}
catch(FileNotFoundException e1)
{
}
catch(Exception e2)
{
}
catch(IOException e3)
{
}
catch
{
}
9.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close
B.DisposeC.Finalize
D.using
10.Net依赖以下哪项技术实现跨语言互用性?( C )
C.CLS
11.请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答)
如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。
12.以下哪个类是int的基类?( )
A.Int32 D.Int16
二、C# 部分*
13.以下哪些可以作为接口成员?(多选) ( ABDE )
A.方法B.属性C.字段D.事件E.索引器
F.构造函数G.析构函数
14.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD )
A.使用ref参数,传递到ref参数的参数必须最先初始化。
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.都不是
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>
22.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( C? )
C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。
23.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)( CD )
C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。
D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。
。
24.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( B )
B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”
25.您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个 Xml Web Service。这个 Xml Web Service 将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个Xml Web Service?( ? )
B.在“Web引用”对话框中输入这个 XML Web service 的地址。
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
);
}
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
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.ToolBarButtonClickEventArgs 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
一、Web基础知识(HTML、XML、CSS基础语法):
1、HTML/XML规范中,元素结束标签是以尖括号括起来,并以/还是\开头再加上元素名称?即body的结束标签是</body>还是<\body>
2、符合XHTML规范的文档一定符合XML规范吗?XSL和HTML的文档呢?
3、XML规范中,第一行必须是<?xml… 还是<!xml… 开头?
4、一个HTML文档必须包含三个元素,它们是head、body和哪个?
5、HTML中文档内联注释应该是以<!-开头还是<!--或者<?-,又以什么结尾?
6、Javascript脚本必须写在什么标签之内。
7、FireFox浏览器是否支持VBScript脚本?
8、我们现在使用的IE的版本一般是多少,IE的英文全称是什么?
9、CSS规范中,每一条样式的结束符是;(分号)还是: (冒号) ?样式名与样式值之间的分隔符是:(冒号)还是=(等号) ?
10、CSS规范中,.(句点)后面跟一个名称代表什么含义?#(井号)后面跟一个名称代表什么含义?如果要对一个元素设置CSS样式,应将CSS样式写在它的什么属性内?
1、</body>
2、XHTML和XSL都必然符合XML规范,HTML不符合。
3、<?xml
4、html
5、<!--和-->
6、<script>
7、不支持
8、Internet Explorer 6.0 SP2/5.5/5.0/6.0 SP1/7.0 beta2/7.0 beta3都算对。
9、;,:和=都可以
10、.后面跟个名称表示文档中所有class属性值包含这个名称的应用其后样式,#后面跟个名称表示文档中ID为此名称的元素应用其后样式。
二、C#语法考察
1、delegate是引用类型还是值类型?enum、int[]和string呢(难度系数40%)?
2、我们知道new可以调用构造函数创建一个对象,那么new还有什么别的语法吗?
3、base这个关键字有哪几种语法?override呢?
4、请指出C#中是否有下列关键字?virtual、sealed、abstract、import、as、in、goto、final、Const、signed、String(提示,仅指出C#中没有的即可)(难度系数50%)。
5、在循环:for( int i = 0; i < 100; i++ ) Console.WriteLine( i );中,请指出i++的执行时机。
6、试说明continue关键字的用处。
7、object是C#的关键字吗?请指出C#中有哪些类型关键字,如int、float。(提示,写得越多越好)。
8、C#的XML文档注释中(以///开头的注释),<summary>标签用于描述什么?<param>标签呢?
9、我们知道[]是数组和索引器的访问操作符,但它还有一个语法,是什么?
1、delegate引用类型,enum值类型,int[]引用类型,string引用类型。
2、隐藏基类相同签名方法,如果在C# 2.0中则还作为泛型构造函数约束。
3、base两个语法,分别是调用基类构造函数和调用基类方法,override用于重写基类方法。
4、没有的关键字:import、final、Const、signed、String
5、在Console.WriterLine( i );执行之后
6、马上开始下一次循环,忽略循环体余下的语句
7、是,object、int、uint、long、ulong、short、ushort、byte、sbyte、char、float、double、decimal、bool,如回答:enum、struct、class、delegate也算对。
8、<summary>用于某个元素的概要说明,<param>用于某个方法的参数概要说明。
9、特性(Attribute)
三、Web进阶知识(javascript、DOM、CSS进阶):
1、试图说明setTimeout和setInterval的不同。
1、setTimeout在经过指定时间后执行一次,setInterval则是经过指定时间就执行一次。
2、请指出body是什么元素的属性,alert是什么元素的方法。
2、window.document、window
3、onblur事件在什么时机被触发?onmouseover事件当鼠标在元素上移动时是仅触发一次还是连续触发?那么onmouseout呢?
3、onblur在控件失去焦点时触发,onmouseover是连续触发,onmouseout仅触发一次。
4、在CSS中a:hover、a:link各表示什么意思?a与A是否有不同?XHTML规范要求所有标签名称必须大写还是小写?属性名称呢?
4、a:hover表示当鼠标放在连接上时,连接该使用什么样式,a:link表示正常情况下连接该使用什么样式,在现行的CSS标准中不区分大小写,所以a与A没有不同。XHTML要求所有的标签名和属性名都必须小写。
5、在<form>中的元素不能在脚本中直接用元素ID来访问,这个时候我们一般用document的一个方法来获取这个元素。这个方法是:5、getElementById
getElementByID、getElementById、getNodeById、getNodeByID、GetNodeById。
6、由于class是javascript中的保留字,所以元素的class属性在javascript中没有用class这个名称,那么是用什么名称来代替的?
6、className
7、如何简单的使一个变量的值为NaN?
7、a = 1/0;
8、试说明parent和opener属性各代表什么?
8、parent代表父框架,opener代表打开这个窗口的窗口
9、指出border-style样式在javascript应如何访问?
9、element.style.borderStyle
10、指出div与span的不同。
10、默认的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 ) );//请指出返回类型
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]; //请指出返回类型。
1.将手机号转化为由随机字母表示?
2.描述数据适配器中的多表查询?
3.调用存储过程及返回值的提取?
4.SQL中游标的定义?
5.ASP.NET中,用手工的形式对字段进行数据绑定及分页方法?
6.有一人事表,计算两个同时入职的员工的生日的差,用一句 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
…………
产品表 销售计划表
ProductID 产品名 单价 ProductID 客户名 订货数量 销售单价
1 name1 110 2 m 2 250
2 name2 220 1 n 3 110
3 name3 330 3 n 1 300
4 name4 440 4 m 2 400
1.是否能删除产品表中的name2?请说明理由与过程。
2.将销售计划表中m客户的产品名为name2的销售单价更换为产品表中相应的单价
3.求销售计划表中各客户各自的销售总金额的sql语句
4.求客户中销售总量最大的销售总金额的客户的sql语句
5.什么是事务(transaction)?它有什么好处。
6.update table2...数据库为默认设置能不能开始事务?为什么。
7.B/S系统一般分为几层?请说明理由.
8.说说ADO.NET中几个数据库处理的核心对象。
Question 31. (单选)
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
1. 会锁死
2. 不会锁死
Question 32. (单选)
以下描述错误的是()
1. 在C++中支持抽象类而在C#中不支持抽象类。
2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
3. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
Question 33. (单选)
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]的值是()。
1. 9
2. 2
3. 6
4. 越界
Question 34. (单选)
在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( )、利用Socket接收和发送数据。
1. 建立Socket连接
2. 获得端口号;
3. 获得IP地址;
4. 获得主机名;
Question 35. (单选)
如果设treeView1=new TreeView(),TreeNode node=new TreeNode("根结点" ),则treeView1.Nodes.Add(node)返回的是一个 ()类型的值。
1. TreeNode;
2. int;
3. string;
4. TreeView;
Question 36. (单选)
声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是
1. void myCallBack(int x)
2. int receive(int num)
3. string receive(int x)
4. 不确定的
Question 37. (单选)
关于ASP.NET中的代码隐藏文件的描述正确的是
1. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件
2. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件
3. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件
4. 以上都不正确
Question 38. (单选)
What compiler switch creates an xml file from the xml comments in the files in an assembly?
1. /text
2. /doc
3. /xml
4. /help
Question 39. (单选)
下面的代码实现了设计模式中的什么模式
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
Question 40. (单选)
class Class1
{
public static int Count = 0;
static Class1()
{
Count++;
}
public Class1()
{
Count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
请问,Class1.Count的值是多少?( )
1. 1
2. 2
3. 3
4. 4
Question 41. (单选)
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();
}
}
请问,此程序输出结果是:
1. BaseClass
2. BassClass Class1
3. Class1
4. Class1 BassClass
Question 42. (单选)
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);
}
1. i=2001,o=2000,j=2000
2. i=2001,o=2001,,j=2001
3. i=2000,o=2001,,j=2000
4. i=2001,o=2000,j=2001
Question 43. (多选)
您要创建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错误。
Question 44. (单选)
如下程序的运行结果是:
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();
}
}
1. A B A.Fun()
2. A B B.Fun()
3. B A A.Fun()
4. B A B.Fun()
Question 45. (单选)
Which of these string definitions will prevent escaping on backslashes in C#?*
1. string s = #”n Test string”;
2. string s = “’n Test string”;
3. string s = @”n Test string”;
4. string s = “n Test string”;
Question 46. (单选)
Which of the following operations can you NOT perform on an ADO.NET DataSet?
1. A DataSet can be synchronised with a RecordSet.
2. A DataSet can be synchronised with the database.
3. A DataSet can be converted to XML.
4. You can infer the schema from a DataSet
Question 47. (单选)
In Object Oriented Programming, how would you describe encapsulation?
1. The conversion of one type of object to another.
2. The runtime resolution of method calls.
3. The exposition of data.
4. The separation of interface and implementation.
Question 48. (单选)
How does assembly versioning in .NET prevent DLL Hell?
1. The runtime checks to see that only one version of an assembly is on the machine at any one time.
2. .NET allows assemblies to specify the name AND the version of any assemblies they need to run.
3. The compiler offers compile time checking for backward compatibility.
4. It doesn’t.
Question 49. (单选)
三种常用的字符串判空串方法:
1: bool isEmpty = (str.Length == 0);
2: bool isEmpty = (str == String.Empty);
3: bool isEmpty = (str == "");
哪种方法最快?
1. 1
2. 2
3. 3
Question 50. (单选)
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 ++;
}
}
以上代码实现了设计模式中的哪种模式?
1. 原型
2. 抽象工厂
3. 单键
4. 生成器
1. 和 有什么区别?
表示绑定的数据源
是服务器端代码块
2.以下代码能否通过编译?如果不能,请改成正确代码,并说明原因。
3.通过Web Site Administration Tool (in VS2005) 可以实现哪些功能?Web Site Administration Tool 会自动对哪些文件进行修改或添加?
4.解释一下带 “original_” 前缀的Data Parameter和不带前缀的Data Parameter有什么异同。(可用简单的代码说明)
5.修改下面的代码段,使GridView能Update数据。
DataSourceID="SqlDataSource1" DataKeyNames="id" AutoGenerateColumns="False">
SelectCommand="SELECT [id], [lname], [fname] FROM [authors]"
ConnectionString="" />
6.GridView没有内置Insert 数据的功能,如果想在GridView内Insert数据,你有什么想法?
7.ASP.NET 2.0 哪个(些)特性是你觉得最激动人心的?为什么?(也可以谈C#2.0)
ASP.NET 2.0相对于1.1突出了3大理念,
1,提高生产力
A 一致性(masterpage)
B 会员管理
C 资料存取
D 个性化
2 管理能力的提高(例如WEB.CONFIG)
3 提升效能,满足更多人的访问
8.你觉得ASP.NET 2.0(VS2005)和你以前使用的开发工具(.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多个新的控件,减少了工作量
9.把你在学习过程中做过的demo发一个给我,或者把你做过的demo组合在一个项目中发给我
1、override与重载的区别
2、.net的错误处理机制是什么
3、C#中接口和类的异同
4、DataReader和DataSet的异同
Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
DataReader用于读取数据,DataSet用于在内存中保存数据。
重载与覆盖的区别
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
4、DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
一.填空题
1.c#中的三元运算符是_____?
2.当整数a赋值给一个object对象时,整数a将会被_____?
3.类成员有_____种可访问形式?
4.public static const int A=1;这段代码有错误么?是什么?
5.float f=-123.567F;
int i=(int)f;
i的值现在是_____?
6.利用operator声明且仅声明了==,有什么错误么?
7.委托声明的关键字是______?
8.用sealed修饰的类有什么特点?
9.在Asp.net中所有的自定义用户控件都必须继承自________?
10.在.Net中所有可序列化的类都被标记为_____?
11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
12.下面的代码中有什么错误吗?_______
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.下面这段代码有错误么?
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault;
CaseTwo();
break;
}
15.在.Net中,类System.Web.UI.Page 可以被继承么?
二.简答题
1.在c#中using和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的实例时,产生什么输出?
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);
}
}
产生的输出结果是什么?
4.谈谈类和结构的区别?
5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程
序来实现。
6.对于这样的一个枚举类型:
enum Color:byte{
Red,
Green,
Blue,
Orange
}
试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
7.您了解设计模式么?请列出您所知道的设计模式的名称。
8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容
需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
9.什么叫做SQL注入,如何防止?请举例说明。
10.下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
1 ?:
2 装箱
3 3种
4 const成员都是static所以应该去掉static
5 -123
6 要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="
7 delegate
8 不可被继承
9 System.Web.UI.UserControl
10 [serializable]
11 gC
12 abstract override 是不可以一起修饰
13 不可以,不可以
14 case():不行 default;
15 可以
1 Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New 实例化一个对
像,或修饰一个方法,表此方法完全重写此方法,
2 X=1,Y=0
3 x=1,y=2
4 最大区别一个是引用类型,一个是值类型 默认成员访问为public是另外一个区别
.NET & C# 基础知识试题 (20%)
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);
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次方
1 必答
1.1 A类题
1.1.1 Visual Studio.NET 有几个集成开发环境?
○ A.一个 ○ B.两个 ○ C.三个 ○ D.四个
1.1.2 我们称.NET编程架构是什么?
○ A..NET Framework ○ B.VS.NET ○ C.XML Web Service ○ D. 开发工具
1.1.3 以下那些标准是与Web Service相关的
○ A..SOAP ○ B. WSDL ○ C.UDDI ○ D. 以上都是
1.1.4 SOAP标准是谁来制定的?
○ A. Microsoft ○ B. W3C ○ C.IBM ○ D. SUN
1.1.5 Visual Studio.NET 会支持多少种开发语言?
○ A. 两种 ○ B. 三种 ○ C.四种 ○ D. 多种
1.1.6 ASP.NET 是用来开发何种应用的?
○ A. Windows应用 ○ B. .NET组件类 ○ C. Web应用 ○ D. 命令行应用程序
1.1.7 C#编译器将C#程序编译成什么样的代码?
A. 汇编语言代码
B. 机器语言代码
C. 微软中间语言代码
D. 二进制代码
答案:C
1.2 B 类题
1.2.1 所有的.NET基类库是用什么语言编写的?
○ A. C++ ○ B. C# ○ C. VB.NET ○ D. 汇编
1.2.2 什么语言提供了对XML注释的支持?
○ A. C++ ○ B. C# ○ C. VB.NET ○ D. Jscript
1.2.3 关于微软中间语言,下面什么说法错误的?
A. 它是解释执行的。
B. 在执行时,它被转化为机器代码。
C. 它是处理器无关的指令集。
D. 它允许真正的跨语言集成。
1.2.4 . ASP.NET比ASP相比较,下列哪个是不正确的?
A. 支持更多编程语言
B. 可以同时存在于一个应用程序里
C. 用户界面和代码分离,大大提高编程质量
D. 都支持页面级和应用程序级的跟踪调试
1.2.5 关于VB.NET,与C#(发音,C sharp)比较,下列哪项是不正确的?
A. 都是类型安全的编程语言。
B. 都支持自动垃圾收集。
C. 都是面向对象的语言。
D. VB.NET不支持API调用。
1.2.6 微软在VS.NET默认安装中提供了几种编程语言的开发环境?
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、根据委托(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 );
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 );
}
}
简单的说就是从根节点开始遍历找子节点,在从找到的子节点找它的子节点,一层层下去
===========================
1.Params是什么含义? Params是C#中的关键字,采用此关键字可以指定参数数目为可变;在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
如:
public int fConvert(params int[] iParas)
{
…
}
2. C#中有没有运算符重载?能否使用指针?
有,C#中也有运算符重载,如对运算符“+”进行重载;
C#中也可以使用指针,但要声明为unsafe。
3. C#中有很多类被定义为public有什么意义?
C#中很多类被定义为public 表示当前类的外部对于当前类的访问没有任何限制。
4. Internal修饰符有什么含义?
internal数据访问修饰符,表示对所修饰的成员在当前程序集内可以进行没有任何限制的访问;但在当前程序集外部则不能进行访问,其可访问性级别低于public ,高于protected。
5. JAVA的代码是半编译半解释的C#的代码是否也是这样
C#中对于程序代码的处理很类似于Java中的程序代码处理机制;也可以称作半编译半解释,具体为:所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
6. 私有程序集与共享程序集有什么区别?
一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。
7. 请解释进程与线程的区别?进程与程序的区别?
一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在*作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用程序分配处理时间的最小单元。
8. CLR与IL分别是什么含义?
CLR:公共语言运行时,类似于Java中的JVM,Java虚拟机;在.Net环境下,各种编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与*作系统进行通信,而编程语言如C#.NET将尽量避免直接与*作系统直接通信,加强了程序代码的执行安全性,可以这样看:CLR就是具体的编程语言如:C#.NET与*作系统之间的翻译,同时它为具体的编程语言提供了许多资源:
· 面向对象的编程模型(继承、多态、异常处理和垃圾收集等)
· 安全模型
· 类型系统
· 所有.NET基类
· 许多.NET Framework类
· 开发、调试和评测(profiling)工具
· 执行和代码管理
· IL到本地代码(IL-to-native)转换器和优化器
IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
9. 对象能否调用静态方法
不能。对于类内部定义的静态变量及静态方法,该类的对象均不能调用。
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="http://www.mamicode.com/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等)时就要以使用此对象
18. 请解释转发与跳转的区别?
转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面
跳转就是指客户端的跳转
2.什么是ASP.net中的用户控件?
用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
(1、自定义控件默认继承自System.Windows.Fomrs.Control.用户控件默认继承自System.Windows.Fomrs.UserControl
2、用户控件只能在当前项目中使用,而自定义控件可以在多个项目中重复使用
3、自定义控件最终编译成动态连接库形式,使用自定义控件时,可以在项目中直接添加对该动态库的引用,然后通过代码创建该自定义控件
4、如果自定义控件从已有的控件继承而来,则可以在已有的控件的OnPaint事件中重绘该控件的外观)
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
程序代码的作用范围,尤其是变量的,托管代码是为面向公共语言运行库的服务编写的代码,变量类型分得比较多,赋值前就知道类型.装箱就是把引用类型(包括int与结构这样的内置类型)转换为object类型,拆箱就是把object类型转换为引用类型,装箱与拆箱实现了,实现了两种类型的互换.
重载是相同名称的方法,具有相同的返回值,但是去有不同的参数与具体实现.
CTS公共类型系统,.net支持的语言使用相同的数据类,
CLS公共语言系统,实现多种语言
CLR公共语言运行时,多种语言程序运行的引擎.
4.列举一下你所了解的XML技术及其应用
xml可以用来做网页(xslt) xml可以当作数据库 xml可以用来保存对象的系列化(web服务好象是基于这个的)
5.值类型和引用类型的区别?写出C#的样例代码。
结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的
6.ADO.net中常用的对象有哪些?分别描述一下。
connection command sqladapter dataset datatable dataview
7.如何理解委托?
据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
8.C#中的接口和类有什么异同。
接口,是可以多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似
9.。net中读写数据库需要用到哪些类?他们的作用
configuration,sqlconnection,sqlcommand
10.UDP连接和TCP连接的异同。
UDP 传输速度快但不安全
TCP 传输速度相比UDP而言慢一些 但是安全
11.ASP.net的身份验证方式有哪些?分别是什么原理?
form认证,windows集成认证等,一个是利用表单来判断身份,另一个通过系统集成判断身份
12.进程和线程分别怎么理解?
一个进程内可以有多个线程 但是线程内不可能有进程 一个程序可以开多线程来完成不同或相同的工作
13.什么是code-Behind技术。
代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.
14.活动目录的作用。
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
18.如何部署一个ASP.net页面。
上传 或者打包成EXE做成安装
19.如何理解.net中的垃圾回收机制。
在。NET与J2EE中的垃圾回收不同,在J2EE中,垃圾回收要写一大堆代码来处理,但是。NET中将会自动处理。垃圾回收就是将占用在内存中用不到的东西回收从而释放内存。
20.常用的调用webservice方法有哪些?
可以从浏览器、ASP页或其他WEB服务调用可以使用HTTP-GET HTTP-POST访问WEB服务也可以从ASP页或其他WEB服务向其他WEB服务发出SOAP请求
HTTP-GET HTTP-POST SOAP 使用WEB服务代理
产品表 销售计划表
ProductID 产品名 单价 ProductID 客户名 订货数量 销售单价
1 name1 110 2 m 2 250
2 name2 220 1 n 3 110
3 name3 330 3 n 1 300
4 name4 440 4 m 2 400
1.是否能删除产品表中的name2?请说明理由与过程。
2.将销售计划表中m客户的产品名为name2的销售单价更换为产品表中相应的单价
3.求销售计划表中各客户各自的销售总金额的sql语句
.Net Development .Net Development
4.求客户中销售总量最大的销售总金额的客户的sql语句
5.什么是事务(transaction)?它有什么好处。
6.update table2...数据库为默认设置能不能开始事务?为什么。
7.B/S系统一般分为几层?请说明理由.
8.说说ADO.NET中几个数据库处理的核心对象。
1.将手机号转化为由随机字母表示?
2.描述数据适配器中的多表查询?
3.调用存储过程及返回值的提取?
4.SQL中游标的定义?
5.ASP.NET中,用手工的形式对字段进行数据绑定及分页方法?
6.有一人事表,计算两个同时入职的员工的生日的差,用一句 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
…………
Question 31. (单选)
Question 32. (单选)
以下描述错误的是()
1. 在C++中支持抽象类而在C#中不支持抽象类。
2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
3. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
Question 33. (单选)
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]的值是()。
1. 9
2. 2
3. 6
4. 越界
Question 34. (单选)
在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( )、利用Socket接收和发送数据。
1. 建立Socket连接
2. 获得端口号;
3. 获得IP地址;
4. 获得主机名;
Question 35. (单选)
如果设treeView1=new TreeView(),TreeNode node=new TreeNode("根结点" ),则treeView1.Nodes.Add(node)返回的是一个 ()类型的值。
1. TreeNode;
2. int;
3. string;
4. TreeView;
Question 36. (单选)
声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是
1. void myCallBack(int x)
2. int receive(int num)
3. string receive(int x)
4. 不确定的
Question 37. (单选)
关于ASP.NET中的代码隐藏文件的描述正确的是
1. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件
2. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件
3. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件
4. 以上都不正确
Question 38. (单选)
What compiler switch creates an xml file from the xml comments in the files in an assembly?
1. /text
2. /doc
3. /xml
4. /help
Question 39. (单选)
下面的代码实现了设计模式中的什么模式
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
Question 40. (单选)
class Class1
{
public static int Count = 0;
static Class1()
{
Count++;
}
public Class1()
{
Count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
请问,Class1.Count的值是多少?( )
1. 1
2. 2
3. 3
4. 4
Question 41. (单选)
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();
}
}
请问,此程序输出结果是:
1. BaseClass
2. BassClass Class1
3. Class1
4. Class1 BassClass
Question 42. (单选)
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);
}
1. i=2001,o=2000,j=2000
2. i=2001,o=2001,,j=2001
3. i=2000,o=2001,,j=2000
4. i=2001,o=2000,j=2001
Question 43. (多选)
您要创建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错误。
Question 44. (单选)
如下程序的运行结果是:
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();
}
}
1. A B A.Fun()
2. A B B.Fun()
3. B A A.Fun()
4. B A B.Fun()
Question 45. (单选)
Which of these string definitions will prevent escaping on backslashes in C#?*
1. string s = #”n Test string”;
2. string s = “’n Test string”;
3. string s = @”n Test string”;
4. string s = “n Test string”;
Question 46. (单选)
Which of the following operations can you NOT perform on an ADO.NET DataSet?
1. A DataSet can be synchronised with a RecordSet.
2. A DataSet can be synchronised with the database.
3. A DataSet can be converted to XML.
4. You can infer the schema from a DataSet
Question 47. (单选)
In Object oriented Programming, how would you describe encapsulation?
1. The conversion of one type of object to another.
2. The runtime resolution of method calls.
3. The exposition of data.
4. The separation of interface and implementation.
Question 48. (单选)
How does assembly versioning in .NET prevent DLL Hell?
1. The runtime checks to see that only one version of an assembly is on the machine at any one time.
2. .NET allows assemblies to specify the name AND the version of any assemblies they need to run.
3. The compiler offers compile time checking for backward compatibility.
4. It doesn’t.
Question 49. (单选)
三种常用的字符串判空串方法:
1: bool isEmpty = (str.Length == 0);
2: bool isEmpty = (str == String.Empty);
3: bool isEmpty = (str == "");
哪种方法最快?
1. 1
2. 2
3. 3
Question 50. (单选)
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 ++;
}
}
以上代码实现了设计模式中的哪种模式?
1. 原型
2. 抽象工厂
3. 单键
4. 生成器
一份面试题 2005-06-16 12:34 pgmfan
一、写一个程序,语言不限,打印出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的连续整数(如98,99,100,101,102),所有组合。
一份面试题 2005-06-16 18:02 pgmfan
1.如何处理几十万条并发数据?
2.用什么方法比较2个字符串相似,且在系统运行时长驻内存?
3.SQL SERVER中的表存到多少条记录时,速度明显变慢?
4.Session有什么重大BUG,微软提出了什么方法加以解决?
一份面试题 2005-06-21 17:36 用好
Q1:求以下表达式的值,写出您想到的一种或几种实现方法:
1-2+3-4+……+m
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)用ASP。NET中的DATAGRID控件,实现以下显示,描述你的思路。
姓名1
部门1 姓名2
部门2 ……
部门3 ……
Q3: 维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么
Q4:ADO。NET相对于ADO等主要有什么改进?
Q5:ASP。NET与ASP相比,主要有哪些进步?
Q6:C#中的委托是什么?事件是不是一种委托?
Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?
Q9:C#中,执行以下代码后S的结果:
string[] a=new string[5];
aa[0]="33";
aa[6]="66";
string s="";
foreach(string m in aa) s+=m;
Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
Q11:你对XMLHTTP、WEBSERVICE 了解吗?简单描述其特点、作用
Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?
Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么
Q14:大概描述一下ASP。NET服务器控件的生命周期
Q15:UML
Q16:面向对象的概念,主要特点
Q17:类划分的依据。类粒度问题
Q18:事物管理问题
一份面试题 2005-06-23 14:02 pgmfan
1 asp和asp.net区别
2 C#里面包含哪些?
3 ADO 和 ADO.NET区别。
4 适配器datadapter的作用
5 所有类中最顶层的类是哪个类
6 跳转页面有哪几种方式?
7 执行存储过程的方法是哪个?
8 在哪设置全局变量
9 session的设置
10 有哪些集合类?
11 arrylist 和list的区别
12 类包含哪些成员
13 索引器
14 常用控件的属性
15 委托
16 TREE控件
17 listbox combox chacedlistbox的区别
18 俩个表连接查询有什么修饰
19 在asp.net编译动作在什么地方第一次装载是发生?
20 在对象树的顶部是什么对象,asp.net的每个控件,应用程序和页面都是从这个对象中继承,也就是说每个页面都是页面对象的一个实例
21 HYPERLINK 和 linkbotton控件的差别
下面是华为面试题,比较专业。
1 请你分别划osi的7层网络结构图和tcp/ip的5层结构图
2 请你详细解释下IP协议的定义,在哪个层面上面, 主要有什么作用?
3 请问交换机和路由器分别实现的原理是什么?分别在哪个层面实现?
4 请问c++和c里面struct有什么区别?
5 请说说析构函数和虚函数的用法和作用
6 全局变量和局部变量有什么区别?怎么实现的?操作系统和编译器是怎么知道的?
7 8086是多少位的系统?在数据总线是什么实现的?
一份面试题 2005-06-28 17:35 用好
问题:
1.ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释
2.什么是WEB控件?使用WEB控件有那些优势?
3.请解释ASP。NET中以什么方式进行数据验证?
4.请谈谈对正则表达式的看法?
5.ASP。NET中共有几种类型的控件?各有什么区别?
6.WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。
7.WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
8.ASP。NET与ASP相比有什么优势?
9.请解释web.config文件中的重要节点
10.请解释ASP。NET中的web页面与其隐藏类之间的关系?
11.什么是viewstate,能否禁用?是否所用控件都可以禁用?
13.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决
14.请解释一个WEB页面中代码执行次序。
15.请解释什么是上下文对象,在什么情况下要使用上下文对象
16.请解释转发与跳转的区别?
17.请解释ASP.NET中不同页面之间数据传递有那些方式?
18.请解释ASP。NET中button linkbutton imagebutton 及hyperlink这四个控件之间的功别
19.请解释一下。NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。
20.如果出现ASP。NET中的事件不能触发可能由于什么原因造成?
21.如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决?
22.请解释asp.net中的数据绑定与传统数据绑定有什么区别?
23.请解释.net采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释。
24.请解释接口的显式实现有什么意义?
Dotnet面试题(欢迎大家加入新的面试题) 2005-07-02 09:25 用好
Q:您在什么情况下会用到虚方法?它与接口有什么不同?
Q:Override与重载有什么区别?
Q:值类型与引用类型有什么区别?
Q:怎样理解静态变量?
Q:向服务器发送请求有几种方式?
Q:DataReader与Dataset有什么区别?
Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
Q:软件开发过程一般有几个阶段?每个阶段的作用?
Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式?
Q:您对WebService的体会?
Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平?
Q:您离职的原因是什么?
以下几道题目如果您不会,请较为详细的描述您的解决思路和方法
Q:通过超链接怎样传递中文参数?
Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
Q:请编程实现一个冒泡排序算法?
微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
Dotnet面试题(欢迎大家加入新的面试题) 2005-07-02 09:33 用好
第一部分:C#、Asp.net相关
1. 简要说出private、protected的区别
2. 说出下面几个函数的区别:
private void test(string str){…}
private void test(ref string str){…}
private void test(out string str){…}
3. 写代码:取得服务器时间并显示(弹出消息框即可),要求完全在服务器端实现(提示:在C#中使用Response.Write()方法)
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. 简要的谈谈你对多态的理解,并简单的实现一个多态的例子
第二部分:javascript相关
1. 解释以下语句的含义:
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";
}
}
}
}
2. 说出结果
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;
}
3.如果一个页面与数据库有频繁的交互,但又不能让页面刷新的太厉害,您有什么好的方法?
第三部分:ms sql server相关
1.下面关于索引的描述中。哪些是正确的?( )
A、索引能够加快查询的速度
B、索引可能会降低数值的更新速度
C、应该尽可能多的为表建立索引
2.用tsql实现:
a. 如果一个表(table1)存在就删除,否则就创建(假设表只有一个varcahr(50)的字段)
b. 使用select语句根据表table1(sex bit)中的sex的值返回一张表 (sex char(2)),规则如下: 当sex为0时返回’男’,为1时返回’女’。
3. 现有表 Table1 Table2,其字段相同([姓名] varchar(10)),现要得到Table1中在Table2中没有的姓名,请写出Sql语句。
4.写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在)
Dotnet面试题(欢迎大家加入新的面试题) 2005-07-02 09:42 用好
1.考一个设计模式相关的:工厂模式或是Command都行,这几个是常用的.
2.考一个面象对象的:包括ref参数传递+Collection类+序列化
3.考一个建模的:组织机构与权限的设计
4.实际操作的:通过sqlserver+asp.net对某个表的数据进行添加/删除/修改,分页+排序搜索
Dotnet面试题(欢迎大家加入新的面试题) 2005-07-02 09:42 用好
要考基础就问一个就明白了:SQL的全称是什么?
要考能力也问一个就明白了:用存储过程和触发器如何解决并发?
要考潜力问这个:给你两个8两个3 用加减乘除算出24来,写出算法!
Dotnet面试题(欢迎大家加入新的面试题) 2005-07-02 09:44 用好
1、请描述一下.net的页面访问基本过程,以及和普通Web访问过程的区别(请
描述从web页面请求到页面返回的主要事件和过程);
2、怎样理解web应用程序的“无状态编程”?
3、请你列举你最熟悉的WebControl以及他们的主要功能;
4、请你列举你最熟悉的.net名称空间以及他们的主要内容。
5、您经常访问哪些有关.net的网站?
6、 在.net中,请描述有哪些办法可以防止页面刷新局部内容闪烁问题(例如
某个聊天页面,每隔几秒就自动刷新,怎样防止闪烁)?
7、请描述一下在.net中Forms认证模式下,怎样用代码(用户名单存在数据库
中,而不是WebConfig中)实现一个基于角色的授权?
8、在Vs.net中,怎样配置数据库连接,可以使开发环境到应用环境迁移数据库
时不修改程序?
9、假设有一个数据库字段name,需要在网页中只显示该字段的姓,而隐藏名
字,类似“张**”形式,请写出数据绑定的自定义表达式。
10、请简单描述一下制作一个用户控件(UserControl)的过程。
11、您有没有制作过自定义的webcontrol(注意不是用户控件)?如果有,请
描述一下自定义控件制作基本过程,主要重载哪些方法?。
12、请描述构成ADO.net的主要对象以及他们的作用。
Dotnet面试题(欢迎大家加入新的面试题) 2005-07-02 09:45 用好
1。向服务器发送请求有几种方式,是那几种?
2。你编写一段程序来判断服务器请求是get,还是post请求?
3。.net framework逻辑上分几个部分。
4。你怎么样理解静态变量。
5。您在什么情况下会用到虚拟函数?
6。你怎么样理解面向对象编程?
7。说说你用触发器的体会
8。用.net做系统,你什么结构来开发
9。做系统分析你用什么工具。
10。你作为一个项目经理怎么样控制项目进度。
11。谈谈您的项目管理经验。
12。下面是一个数据库表一个列的数据,请用一句SQl把5,6提出来,
2
3
Dotnet面试题(欢迎大家加入新的面试题) 2005-08-11 11:15 pgmfan
1. compare the performance of the following two statements and explain .
statement1:Select * From Table1 Where field1= CONVERT ( DATETIME,’01/01/2003’)
statement2:Select * From Table1 Where CONVERT(VARCHAR(10),field1,103)=’01/01/2003’
2. Enhance the following statement to support the insertion of Unicode data.
Insert INTO Table1 VALUES(‘data’)
3. what is UDF stand far? Name two limitations on using UDF?
4. which one of the followings has a better performance and why?
5. write a SQL statement in joining Table A and Table B to product the result set as listed.
Table A
Code Area
1 A1
2 A2
3 A3
5 A5
7
Table B
Code Region
1 R1
3 R3
6 R6
8
Result Set
Code Area Code Region
1 A1 1 B1
3 A3 3 B3
NULL NULL 6 B6
NULL NULL 8 NULL
6. write a statement using Table A and Table B in question 5 to product the following result set.
Code Area
1 A1
1 B1
2 A2
3 A3
3 B3
5 A5
6 B6
7 NULL
8 NULL
7. write a statement using Table A and Table B in question 5 to product the following result set.
Code Area
2 A2
5 A5
7 NULL
8. what is IDENTITY Column? How to enable the insertion of value to the Coumn?
9. what is Cluster index?
10. The following result Set is listed on executing the statement.
Select * From temp_cost
Staff_no Pay_code Total-allowance
1001 P1 70
1002 P2 60
1001 P1 100
1002 P1 80
1002 P2 90
What is the result in executing the statement .
Select staff_no,Pay_code,MAX(total_allowance) FROM temp_cost
1. How to display Chinese in the field for crystal Report and what are the constaint(s)?
2. How do you change all existing report to connect to the database if the database has been moved to a new location or if the database has been renamed?
3. How do you update your report to reflect the changes in your database?
4. Can the section Format event handler change the outcome of a formatted report section at runtime?
If Yes, what are the constrains ? if No,how are can handle the change of format relating to the runtime data?
5. what if a Sub-report?
1. Describe the approach in enabling a component with long name reference to be share by different applications.
2. what is the validation class ? what is the usage ?
3. Compare the Performance of the following two sets of codes and explain
Coding Set 1
Dim s as string
For I = 1 to 5000
S=s + “some text”
Next
Coding Set 2
Dim sb as New StringBuider
For I = 1 to 5000
s.Append(“some text”)
Next
4. what is cache dependeney ? List types of Cache dependentay
5. what are serviced components ? what are the disadvantages?
6. Briefly describe how to re-activate the environment if you find the ASPX.
Deelopment environment is hanged up (something related to the IIS service)
7. Describe 2 ways to deal. With an Unexpencted or unhandled exceptions that is not captured by a try/catch/Finall
Block.
8. Briefly describe what are ideatity ,Roles, Principal in managed security context.
9. what is SmartNavigation?
What are the main advantages of using SmartNavigation?
10. what is code-Behind?
Please describe the benefit of having this feature in the .NET enviroument.
Dotnet面试题(欢迎大家加入新的面试题) 2005-09-15 08:42 pgmfan
1.面向对象的思想主要包括什么?
2.什么是ASP.net中的用户控件
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
4.列举一下你所了解的XML技术及其应用
5.值类型和引用类型的区别?写出C#的样例代码。
6.ADO.net中常用的对象有哪些?分别描述一下。
7.如何理解委托?
8.C#中的接口和类有什么异同。
9.。net中读写数据库需要用到哪些类?他们的作用
10.UDP连接和TCP连接的异同。
11.ASP.net的身份验证方式有哪些?分别是什么原理?
12.进程和线程分别怎么理解?
13.什么是code-Behind技术。
14.活动目录的作用。
15..net中读写XML的类都归属于哪些命名空间?
16.解释一下UDDI、WSDL的意义及其作用。
17.什么是SOAP,有哪些应用。
18.如何部署一个ASP.net页面。
19.如何理解.net中的垃圾回收机制。
20.常用的调用webservice方法有哪些?
Dotnet面试题(欢迎大家加入新的面试题) 2005-09-25 15:27 路过
1.error和exception有什么区别?
2.List, Set, Map是否继承自Collection接口?
3.abstract class和interface有什么区别?
4.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
5.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
6.启动一个线程是用run()还是start()?
7. 构造器Constructor是否可被override?
8.是否可以继承String类?
9. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
10. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
11. 编程题: 用最有效率的方法算出2乘以8等於几?
12. 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
13. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
14. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
15. 写一个Singleton出来。
数据库方面
16. 存储过程和函数的区别
17. 事务是什么?
18. 游标的作用?如何知道游标已经到了最后?
19. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
20. 请说出强名的含义
21. 请列出c#中几种循环的方法,并指出他们的不同
22. SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值
23. 您在什么情况下会用到虚方法?它与接口有什么不同?
24. 怎样理解静态变量?
25. 如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
26. 微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
27. 请列举一些您用到过的设计模式以及在什么情况下使用该模式?
28. 您对WebService的体会?
29. 通过超链接怎样传递中文参数?请给出code
30. 请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?请给出sample code
31. 有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.
请给出code
32. 如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.
33. A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.
34. 写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用例。
35. 什么是反射?
36. 用Singleton如何写设计模式
37. 什么是Application Pool?
38. 链表和数组的区别,各有什么优缺点
39. Remoting在客户端服务器怎么实现?
40. 什么是内存泄漏,怎样最简单的方法判断被存泄漏 ?
41. 使用什么工具来调用存储过程
42. 什么是Web Service?
43. Socket怎么实现?(给出C# code)
Dotnet面试题(欢迎大家加入新的面试题) 2005-10-05 09:04 pgmfan
7.谈谈final, finally, finalize的区别
8. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
9.Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
10.HashMap和Hashtable的区别。
11.Collection 和 Collections的区别。
12.什么时候用assert
13.GC是什么? 为什么要有GC?
14.String s = new String("xyz");创建了几个String Object?
15.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
16.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
17. sleep() 和 wait() 有什么区别?
18. 数组有没有length()这个方法? String有没有length()这个方法?
19. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
20.给我一个你最常见到的runtime exception
Dotnet面试题(欢迎大家加入新的面试题) 2005-10-14 08:56 pgmfan
笔试题
注:请选择自己了解的问题回答,有些问题如果认为手写回答比较困难,但是可以说清楚,可以做一个标记,当面回答问题就可。
.NET基础
1. 什么是装箱和拆箱?
2. 什么是重载?
3. 值类型和引用类型的区别?
4. 如何理解委托?
5. 了解程序集强签名吗?
6. C#种接口和类有什么区别?
7. 请解释应用程序域、程序集、元数据、反射这几个技术名词
ASP.NET
1. 是否了解 URL Rewrite?请简要说明其原理和在 ASP.NET 中的实现方式。
2. 简单说说 ASP.NET 中基于表单的身份验证方式的用法
3. ASP.NET 中如何调用 Web Service 的方法?
4. View State 的作用和实现方式?
5. 如何实现页面分段缓存?
6. 你是否知道下列名字:.NET Pet Shop,IBuySpy Store,DotNetNuke,NUnit,Data Access Application Block?说说它们分别都是什么。
数据库开发
1. 在超过10万条记录的页面显示时,你如何处理分页,有多少种替代方案?
2. 请描述DataSet的特点
3. 用 ADO.NET 操作 SQL Server 2000 数据库的一般步骤?
4. 数据库某表主键自增,是很常见的情形。在ASP. Net或C#程序中,要求向该表插入一条记录,并马上从该表查出这条记录。不能使用时间戳,请问你如何实现?
5. 你会利用那些工具进行数据库的性能分析及其优化?
XML
1. 列举你所了解的XML技术及其应用
2. 如何实现XML系列化(给出简单的代码示例)
3. 是否了解XSD,如果了解,请简述其特性
Web开发
1. 你知道 AJAX 吗?说说它的特点和一般实现方式
2. 写出一段利用XMLHTTP工作的简单代码
3. 如何定义嵌套的CSS样式类
4. 用简单的JavaScript伪实现面向对象的继承,封装,重载
网络
1. .NET Remoting的工作原理是什么?请简要地写出一个.NET Remoting的示例
2. 从程序请求远程http站点,有哪些可用的类?
3. 请介绍在开发中你如何利用Web Services?
平台和服务
1. 对于Web Services,.NET Remoting,MSMQ,Enterprise Services这四个中接触过多少?能否简要的介绍他们的特点
2. 简述COM+/Enterprise Services的关键特性和应用场景
3. 对于Biztalk Server、SharePoint Portal Server、CMS Server、Exchange Server、SQL Server这几个产品的定位和功能是如何理解的
协作和质量管理
1. 你用过哪些版本控制工具
2. 在开发中你利用那些工具进行单元测试和模块测试
3. 如何进行Bug管理
4. 如何生成和管理开发文档
5. 请简单的描述一下项目开发过程
其他
1. 可否简要的介绍asp.net 2.0 Membership,WebPart和C#的匿名函数和泛型,希望可以简要地阐述其中的特点
2. 如何理解责任链和命令模式的异同?
3. 你如何学习新知识?有哪些站点或者资源你认为值得推荐?
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 可以被继承么?可以
2. 不定项选择:
(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)越界
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 = http://www.mamicode.com/“myX.ascx”%>
b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = http://www.mamicode.com/“myX.ascx”%>
c)<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = http://www.mamicode.com/“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
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.都不是
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>
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
);
}
3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一命名空间内可以访问。
4. 写出一条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)
5 .列举ASP.NET 页面之间传递值的几种方式。
1. 使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer
2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype="hidden" 简单,可能被伪造
url参数简单,显示于地址栏,长度有限
数据库稳定,安全,但性能相对弱
2.override与重载的区别
Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
3、.net的错误处理机制是什么
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
4、C#中接口和类的异同
接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
4、DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
1. 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
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.谈谈类和结构的区别?
最大区别一个是引用类型,一个是值类型 默认成员访问为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);
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 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
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="http://www.mamicode.com/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等)时就要以使用此对象
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.ToolBarButtonClickEventArgs 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)、结构不能使用初始值设置域值。
.。net中读写数据库需要用到哪些类他们的作用
那configuration,sqlconnection,sqlcommand等都要用到
.class和struct的异同!
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过
datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]dataset,datatable,dataview , IList
‘connection 连接对象
command 命令对象,指示要执行的命令和存储过程!
datareader是一个向前的只读的数据流。
dataadapter是功能强大的适陪器,支持增删改查的功能
dataset是一个数据级对象,相当与内存中的一张表或多张表!
Windows、Forms(窗体)、Passport(护照)和None(无)。
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.概述o/r mapping 的原理 利用反射,配置 将类于数据库表映射
1.new有几种用法第一种:new Class();第二种:覆盖方法public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.什么是ASP.net中的用户控件 用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
虚函数( virtual 实合),反射,继承,封装,多态,对象,实体,委托,重载,重写,程序集,
封装就是 信息隐藏,隐藏一个对象的本质,让用户不再注意那些细节
继承就是 指定一个类与另一个类之间的关系。可以修改所需要类的状况和创建信的派生类的对象。这种能力是创建一个类层次的精华。在抽象的外部,继承是系统设计的主要部分。主要是为了可重用,代码移植,你能在保持父类原有特性及方法的前提下;添加新的特性,方法或者范围更小的约束
多态就是 具有老代码调用新代码的功能,他允许我们增强系统的功能而不破坏现有的代码。
2个好处:1、它能聚集公共的基类对象,并始终如一的处理他们。
2、老的代码可以使用新代码。
栈的空间大小有限定,vc的缺省是2M。栈不够用的情况一般是程序中分配了大量数组和递归函数层次太深。有一点必须知道,当一个函数调用完返回后它会释放该函数中所有的栈空间。栈是由编译器自动管理的,不用你操心。
堆是动态分配内存的,并且你可以分配使用很大的内存。但是用不好会产生内存泄漏。并且频繁地malloc和free会产生内存碎片(有点类似磁盘碎片),因为c分配动态内存时是寻找匹配的内存的。而用栈则不会产生碎片
在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变量表示在该文件中有效,不能extern到别的文件用,在函数体内定义的static表示只在该函数体内有效。另外,函数中的"adgfdf"这样的字符串存放在常量区。
.列举ASP.NET 页面之间传递值的几种方式
QueryString
Server.Transfer
Session
Select top 10 * from Table where id not in(select top 30 id from Table )
Select top 10 * from Table where id>( Select max(id) form (Select top 30 id form Table AS A))
private 私有的成员类公为类自己内部使用
Protected 收保护的成员呀 为自己类和继承类使用
Public 共开类,为使用类共用
internal 在同一命名空间中使用
对象编程的方法
OOP 继承,封装,多态性
对象完成方法
类是引用类性. 不用new 不是创建类,只是在对堆栈上的一个引用
值类型与引用类型必须在引用前始使化他
构造函数(与类名相同) 始使化类时调用 new
重写 overrid
重载 函数或方法名相同,后面参数不同系统自动找到对应的值
把函数当着一个参数..委托
析构函数()
时间段 是多个线程一起运行.... 一个进程可以包括多个线程
时间点 cup只有一个线程占用
应用程序域 (application domain) (AppDomain)
Public class MainClass
{
Public Static void Main()
{
Console.WriteLine(Foo(30));
}
Public Static Foo(int i)
{
if(i<=0)
Return 0;
else if(i=1 or i=2 )
Return 1;
else
Return Foo(i-1)+foo(i-2);
}
}
索引器,委托,事件
属性与字段的比较
属性是逻辑的字段。,属性是字段扩展,属性不能直接对应于存储位置
反射:在运行时找到有关对象、对象的类,方法和变量等信息。 System.Reflection
C#中的多态性 指同一操作作用于不同的类的实例,不同的类进行不同的解释,最后产生不同的执行过程,有了多态性,在运行时能够方便实现派生类的方法
override 重写 继承的类方法与函数在基类相同这里被重写,名称相同。
struct 结构类型 可以有构造函数。方法,成员。但它是值类型不能被子继承。
值类型 值的副本。在内存中是堆栈存储 基本的数据类型是值struct结构 默认为0
引用类型 传地址 仅是堆存储的 类是引用类型,数组, 默认为null
装箱 值类型向引用类型转换
折箱 引用类型向值类型转换
asp.net身份验证 form windows passport none
.如何理解委托?
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。
sealed 修饰的表示密封类。。不能从这个类中派生基它类。
密封内不能同时为抽象类。
sealed修饰主是防止非有意派生,但是它还能促使用
Response.Write("<script>");输出在文件头部,一打开就执行。
RegisterClientScriptBlock一般返回的是客户端函数的包装,
而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onl oad="f()"里面的函数;
这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form runat=server>之后,而RegisterStartupScript在</form>之前。
----------------------------------------
Page.RegisterClientScriptBlock 和 Page.RegisterStartupScript 有啥区别?
如果你仅仅是注册一些函数,这两者的效果是一样的。
而RegisterStartupScript会将内容输出在</form>标记之前,Form上其他任何元素之后,这样可以保证StartupScript被浏览器执行之前其他的页面元素已经被正确的实例化。
foreach(DataGrid dgi in myDatagrid.Items)
{
TextBox tb=(TextBox)dgi.FindControl("myTextBoxID");
tb.Text="abc";
}
Private void GrdCustomer_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
System.Web.UI.WebControls.DAtaGridItemEvenArgs e)
{
//点击表格打开
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
e.Item.Attributes.Add("onclick","window.open("""Default.aspx?id=+"e.Item.Cells[0].Text+)")
}
Private void DataGrid_ItemCreated(Object sender ,DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.Item;
case ListItemType.AlternatingItem;
case ListItemType.EditItem;
Tablecell myTableCell;
myTableCell=e.Item.Cell[14];
LinkButton myDeleteButton;
myDeteleButton= (LinkButton)myTableCell.Controls[0];
myDeteleButton.Attribues.Add("onclick","return confirm(""您确定要删除吗?"")");
break;
Default;
break;
}
}
int intempid=(int)MyGridView.DataKeys[e.Item.ItemIndex];//得到ID
string deletecmd="Delecte from employee where emp_id="+intempid.ToString()
Button1.Attributes.Add("onclick","return confirm(""确认吧?"")");
Button1.Attributes.Add("onclick","if(confirm(""are you sure"")){return ture ;}else {return false;}")
动态添加siteMap
在web.config 中
<siteMap>
<provider>
<add name="sqlsitemap" type="Samples.Aspnet.CS.Controls.sqlsitemap" smcstring="Data Source=(local);UID=sa;pwd=sa;database=aa"/>
<add name="mysitemap" type="Samples.AspNet.CS.Controls.mysitemap" smcstring="Provider=Microsoft.jet.oledb.4.0;Data Source="e:\12.mdb"" >
</provider>
</siteMap>
静态SiteMapResolve事件
注册事件 web.SiteMapPath
SiteMap.SiteMapResolv+ =new SiteMapResolveEvenHandler(SiteMap_SiteMapResolve); //()内表示事件名称
{//我们自定义的处理方法
SiteMapNode CurrentNode=SiteMap.CurrentNode.Clone(true);
}
SiteMapNode SiteMap_SiteMapResolve(Object sender)
class Customer:IDbAccessable
private int _age;
Public int Age() 类
{
get{ return _age;}
set{
if ((value>0)&& (value<100))
_age=value;
}
}
Public void SaveToDb(IDbprovider Provider) //类中
{
//访问storedProcedure
Proivder.save(Object o);
}
Public void LoadFromDb(IDbprovider Provider)
{
Provider.Load();
//View
}
class SqlServerProvider:IDbProvider
{
}
class AccessProvider:IDbProvider
{
}
中文在utf-8 是可变长度来存储 中是三个字节 闰面字符4个字节
string str="中文123";
在winform中输出是 Console.WriteLine(str.Length);
Encoding gb=Encoding.GetEncoding("gb2312");
byte[] bytes=gb.GetBytes(str);
char[] chars=gb.GetChars(Bytes);//从字节按照gb2312得到字符数组
str=gb.GetString(Bytes); //从字节按照gb2312得到unicode字符串
StreamWriter sw=new StreamWriter("1.txt");
sw.Write(chars);
StreamWriter sw2=new StreadmWriter("2.txt",false,gb)
sw2.Write(str);
Porfile配置信息
.net2.0为每个用户存储配制信息,
他是一个强类型与长期保存 与application 与session不一样呀.长期保存了
支持匿名用户,他配制存在Provider
<configuration>
<system.web>
<profile>
<properties>
<add name="Screennanme">
<add name="posts" type="System.int32" defaultValue="http://www.mamicode.com/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 站点导航 模式与树形式的两种式样
zhaizi:
- 上一篇windowserver 2008 教程
- 下一篇正则表达式全集