c#面试题(三)

.NET笔试题

分类:C#&ASP.NET
姓名: 日期:

1. 填空: (1)面向对象的语言具有________性、_________性、________性。

(2)能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。

(3)列举ADO.net中的五个主要对象_______________、_____________、_______________、_______________、_________________。

2. 不定项选择:

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

A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。
C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。

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

A. ExecuteNonQuery B. ExecuteScalar

C. Fill D. ExecuteReader

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


4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)


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


6. 写出程序的输出结果

class Class1 {
private string str = "Class1.str";
private int i = 0;
static void StringConvert(string str) {
str = "string being converted.";
}
static void StringConvert(Class1 c) {
c.str = "string being converted.";
}
static void Add(int i) {
i++;
}
static void AddWithRef(ref int i) {
i++;
}
static void Main() {
int i1 = 10;
int i2 = 20;
string str = "str";
Class1 c = new Class1();
Add(i1);
AddWithRef(ref i2);
Add(c.i);
StringConvert(str);
StringConvert(c);
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(c.i);
Console.WriteLine(str);
Console.WriteLine(c.str);
}
}


7.写出程序的输出结果

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();
}
}


8. 写出程序的输出结果:
public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}

public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}


public class B : A
{
public override void Fun1(int i)
{
base.Fun1 (i + 1);
}

public static void Main()
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}



9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......

求第30位数是多少, 用递归算法实现。(C#语言)


10. 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求: 1.要有联动性,老鼠和主人的行为是被动的。

2.考虑可扩展性,猫的叫声可能引起其他联动效应。


参考答案:
1. (1) 继承性、封装性、多态性。(考基本概念)
(2) IEnumerable 、 GetEnumerator (对foreach机制的理解,本来不想出这题的,凑分)
(3) ... (送分题, 对ADO.net的了解)
评分标准:一空1分,满分10分。



2. (1) B、C (考对接口的理解) (2) B、C、D (考查对ADO.net的熟练程度)
评分标准: 一题5分,不选或者错选均不得分。漏选得2分。满分10分。



3. . private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
评分标准:答对1题2分,2题5分,3题7分。全对10分。 (送分题)



4. 解1: 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)
评分标准: 写对即10分。(答案不唯一,datagrid 分页可能需要用到)

5. 1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer
....等等
评分标准: 答对1点得3分, 两点7分, 3点10分。


6. (考查值引用和对象引用)
10
21
0
str
string being converted.
评分标准:答对一点得2分,满分10分。


7. A
B
A.Fun()
评分标准: 写出A.B 得5分,写出A.Fun()得5分,满分10分。
(考查在继承类中构造函数, 以及new 方法, )




8. 2
5
1
6

评分标准: 答对一点得2分,两点得5分,3点得7分。全对得10分。

(一些人做这题,头都晕了.... ^_^ )



9.

public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
评分标准: 写出return Foo(i -1) + Foo(i - 2); 得5分。

写出if(i > 0 && i <= 2) return 1; 得5分。

方法参数过多需要扣分(扣除分数 = 参数个数 - 1)

不用递归算法扣5分

(递归算法在树结构建立等方面比较常用)



10

要点:1. 联动效果,运行代码只要执行Cat.Cryed()方法。2. 对老鼠和主人进行抽象
评分标准: <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)
<2>从Mouse和Master中提取抽象(5分)
<3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。(3分)


public interface Observer
{
void Response(); //观察者的响应,如是老鼠见到猫的反映
}
public interface Subject
{
void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject subj)
{
this.name = name;
subj.AimAt(this);
}

public void Response()
{
Console.WriteLine(name + " attempt to escape!");
}
}
public class Master : Observer
{
public Master(Subject subj)
{
subj.AimAt(this);
}

public void Response()
{
Console.WriteLine("Host waken!");
}
}

public class Cat : Subject
{
private ArrayList observers;
public Cat()
{
this.observers = new ArrayList();
}
public void AimAt(Observer obs)
{
this.observers.Add(obs);
}
public void Cry()
{
Console.WriteLine("Cat cryed!");
foreach (Observer obs in this.observers)
{
obs.Response();
}
}
}
class MainClass
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse mouse1 = new Mouse("mouse1", cat);
Mouse mouse2 = new Mouse("mouse2", cat);
Master master = new Master(cat);
cat.Cry();
}
}


//---------------------------------------------------------------------------------------------

设计方法二: 使用event -- delegate设计..
public delegate void SubEventHandler();
public abstract class Subject
{
public event SubEventHandler SubEvent;
protected void FireAway()
{
if (this.SubEvent != null)
this.SubEvent();
}
}
public class Cat : Subject
{
public void Cry()
{
Console.WriteLine("cat cryed.");
this.FireAway();
}
}
public abstract class Observer
{
public Observer(Subject sub)
{
sub.SubEvent += new SubEventHandler(Response);
}
public abstract void Response();
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject sub) : base(sub)
{
this.name = name;
}
public override void Response()
{
Console.WriteLine(name + " attempt to escape!");
}
}
public class Master : Observer
{
public Master(Subject sub) : base(sub){}
public override void Response()
{
Console.WriteLine("host waken");
}
}
class Class1
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse mouse1 = new Mouse("mouse1", cat);
Mouse mouse2 = new Mouse("mouse2", cat);
Master master = new Master(cat);
cat.Cry();
}

}


1.进程和线程的差别。

线程是指进程内的一个执行单元,也是进程内的可调度实体.

与进程的区别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

2.测试方法

人工测试:个人复查、抽查和会审
机器测试:黑盒测试和白盒测试

2.Heap与stack的差别。

Heap是堆,stack是栈。
Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。
Stack空间有限,Heap是很大的自由存储区
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。

3.Windows下的内存是如何管理的?

4.介绍.Net和.Net的安全性。

5.客户端如何访问.Net组件实现Web Service?

6.C/C++编译器中虚表是如何完成的?

7.谈谈COM的线程模型。然后讨论进程内/外组件的差别。

8.谈谈IA32下的分页机制

小页(4K)两级分页模式,大页(4M)一级

9.给两个变量,如何找出一个带环单链表中是什么地方出现环的?

一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方

10.在IA32中一共有多少种办法从用户态跳到内核态?

通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等
11.如果只想让程序有一个实例运行,不能运行两个。像winamp一样,只能开一个窗口,怎样实现?

用内存映射或全局原子(互斥变量)、查找窗口句柄..
FindWindow,互斥,写标志到文件或注册表,共享内存。.

12.如何截取键盘的响应,让所有的‘a’变成‘b’?

键盘钩子SetWindowsHookEx

13.Apartment在COM中有什么用?为什么要引入?

14.存储过程是什么?有什么用?有什么优点?

我的理解就是一堆sql的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行SQL快很多

15.Template有什么特点?什么时候用?

16.谈谈Windows DNA结构的特点和优点。

17.网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?

1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。

2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

1 必答
1.1 A类题
1.1.1 Visual Studio.NET 有几个集成开发环境?
○ A.一个 ○ B.两个 ○ C.三个 ○ D.四个


你要不要再一次回答问题?请看"开心辞典"的所有题目。
1。必答 7套 14道
2.抢答 6 道
3.风险 6组,3道一组 A 10 B 20 C 30 =18 6 道
38 道题
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种

2.1 下列哪些不是公共语言运行环境(CLR)的特性?
A. 代码执行管理
B. 管理函数指针调用
C. 类型安全
D. 代码访问安全


2 抢答(规则,题念完了,才可以抢答)

2.1 下列哪些不是公共语言运行环境(CLR)的特性?
A. 代码执行管理
B. 管理函数指针调用
C. 类型安全
D. 代码访问安全


2.2 下面哪个不是ADO.NET对象?
A. 数据适配器DataAdapter
B. 记录集Recordset
C. 数据集DataSet

2.3 什么工具来进行数据库建模?
A. SQL Server。
B. VS.NET架构版中的Visio。
C. VS.NET的集成环境。
D. Biztalk Server。

2.4 ACT(微软应用程序中心测试工具)能够用来进行下面哪些测试:
A. Web应用程序的功能性测试
B. 性能测试
C. 压力测试
D. 以上所有

2.5 ADO.NET中,数据集的Schema(结构定义)用什么来描述?
A. SQL语句
B. XML
C. 为达到最高的效率而设计的二进制标准

2.6 ASP.NET支持哪种会话状态保存的方式:
A. 服务器进程内
B. 状态服务(State Service)
C. SQL 服务器
D. 以上都是

3.1 A类题

3.1.1 下列哪种语言不是面向对象的?
A. C#
B. VB
C. VB.NET
D. C++


3 风险

3.1 A类题

3.1.1 下列哪种语言不是面向对象的?
A. C#
B. VB
C. VB.NET
D. C++

3.1.2 .NET框架不可以运行在什么样的平台上?
A. Windows 2000
B. Windows NT 4.0
C. Windows 98
D. Windows XP
E. Windows 95


3.1.3 VB.NET 是一种完全面向对象的语言吗?
○ A. 是 ○ B. 不是

3.1.4 用户可以在.NET环境中使用Java语言吗?
○ A. 可以 ○ B. 不可以

3.1.5 ASP和ASP.NET应用程序可以同时在同一个Web Server上运行,并不相互影响。这种说法:
A. 正确
B. 错误

3.1.6 在.NET应用中,如果开发时分配了内存却不小心忘了及时释放,会造成内存不足吗?
A. 会
B. 不会

3.2 B类题

3.3 对于发布.NET应用,那个说法正确?
A. 只能使用文件复制发布
B. 只能使用Windows Installer
C. 只能使用打包和发布向导
D. 以上方法都可以

3.3.1 关于C#语言的描述,下列哪项是不正确的?
A. 和Java一样,都起源于C++语言
B. 和Java都已经提交给ECMA国际标准组织。
C. 它支持C++所不支持的接口(Interface)
D. 它支持自动垃圾回收

3.3.2 下面哪一条有关ASP.NET是错误的?
A. 比ASP需要更多代码
B. 是编译执行的
C. 服务器端控件可以减小客户端编程工作量
D. 编译后的页可以被缓存起来提高性能

3.3.3 真正实现跨平台集成的技术是什么?
A. HTML。
B. Java。
C. DCOM。
D. XML web service。

3.3.4 微软.NET框架快速开发的原因是什么?
A. 丰富的类库
B. 统一的编程模型
C. 优秀的集成环境
D. 以上都是

3.3.5 下列哪条不包括在.NET框架中?
A. ASP.NET
B. MFC
C. ADO.NET
D. Windows 表单


3.4 C类题
3.4.1 关于VC++.NET的管理扩展,下面哪个说法不正确?
A. 它默认情况下不被安装
B. 它可以将现有的代码直接移植到.NET
C. 它可以完成所有C#能做到的
D. 它完全支持.NET框架

3.4.2 VS.NET支持VB6的升级,不正确的说法是哪个?
A. VS.NET提供该升级向导
B. VB表单和用户控件被升级到Windows表单
C. ADO数据绑定可升级到ADO.NET
D. ActiveX文档, DHTML页面被升级


13. ADO.NET数据集在那里创建数据缓冲?
A. 数据库服务器内存
B. Web服务器内存
C. 客户端内存


3.4.3 下面哪种特性VB.NET中没有提供?
A. 类的继承
B. 指针
C. Delegate
D. Attributes

11. 在C#中,怎样决定一个对象的类型?
A. 使用is操作符
B. 使用typeof操作符
C. 使用GetType方法

3.4.4 在一个过程里面发生了意外(Exception),而该过程里没有设置如何处理它,那么会发生什么情况?
A. 产生错误。
B. 该应用程序被终止。
C. 显示错误信息。
D. 该意外传回调用者或者前一个过程


备份题(如果出现相同的最高分)

3.5 当你升级一个Visual Basic 6.0的应用程序时,变体数据类型会被转换成:
A. 整型
B. 字节型
C. 对象类型
D. 字符串类型


一个名字空间可以分布在多少个装配件里面?
A. 无
B. 一个
C. 两个
D. 可以按需要任意多个。

5. 为了使用全局装配件缓冲,装配件必须有:
A 强命名
B 弱命名
C 都可以

6. 我们可以使用那个命令行工具从全局装配件缓冲中安装或删除装配件?
A. gacutil.exe
B. pview.exe
C. al.exe
D. csc.exe


7. .NET中下列什么工具可以用来察看策略信息?
A 代码访问安全工具( Caspol.exe)
B 权限查看工具(permview.exe)
C 都可以



11. 12. 在ADO.NET中,数据关联类说明了在同一个数据集里的两张数据表中的一列或多列之间的关系。这种说法:
A. 正确
B. 错误

13. 非连接数据访问模式比连接数据访问模式更适合于那些需要高可扩展性的应用程序。这种说法:
A. 正确
B. 错误

16. 事务的启动或终止可以使用下面那种对象:
A. 事务对象
B. 连接对象
C. 命令对象


15. 数据适配器能被用来基于SQL join操作更新数据表中的数据,这种说法:
A. 正确
B. 错误

开发人员试题]
以sql server 为例
一、Sql题
员工信息表[员工号,姓名,性别],T_Worker[WorkerId,name,sex]
员工迟到表[员工号,迟到日期,迟到时长],T_Late[WorkerId,latetime,latelong]
1.在 日期1 (2002-10-9) 到日期2 (2002-11-6) 之间迟到的员工姓名
2.查询员工姓名含有O的员工信息
3.更改员工号为00001的员工的姓名为Jack
4.迟到两次以上的员工号
5.没有迟到的员工信息(用Join)
6.编写触发器,当删除员工信息时,同时删除对应的迟到记录
二、asp,javascript题
1.几种页面之间的传值方法
2.asp几个内置对象的名称
3.javascript弹出确认框的函数
4.text框输入完成后,按回车键跳到下一个text框
5.asp实现报表显示打印的方案
三、.net题
1.如何给label1赋值
2.asp.net的配置文件名称
3.Page.IsPostBack的作用
4.ADO.NET的几个对象的名称
5.服务器端删除提示的消息框如何写
6.服务器端Codebehind方式时,如何注册前端javascript脚本,用什么对象的方法
基础部分
1. OSI七层参考模型的名称?
2. UDP连接和TCP连接有何异同?
3. 进程和线程分别怎么理解?

无答案
=================
基础部分
1. OSI七层参考模型的名称?
2. UDP连接和TCP连接有何异同?
3. 进程和线程分别怎么理解?
4. 活动目录的作用?
5. ASP中的七大对象是什么?
6. 在ASP中如何连接数据库?(编写一段代码描述)
7. COM+环境的主要特性?
8. 什么是NLB、什么是CLB?
9. VSS的作用?
10. 面向对象的思想主要包括什么?
11. 什么是DNA架构?
12. 分析一下SQL Server、Exchange Server、SharePoint Portal Server、BizTalk Server各自的功能及其作用。


面试 一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷
两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据库或一些基本的算法(二分查找,递归等),公司一般都是测试你的基本功是否扎实,如果你基本功好就游刃有余不必紧张!
asp.net面试题
1.new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.概述o/r mapping 的原理
利用反射,配置 将类于数据库表映射
6.类成员有( )种可访问形式
可访问形式?不懂。
可访问性:public ,protected ,private,internal
7.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
8.列举ADO.NET中的五个主要对象,并简单描述
connection,command,dataReader,trans,dataset ...
9.执行下面代码后:
String strTemp ="abcdefg 某某某";
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
问:i=(14 ) ;j=(11 )
i=(14 ) ;j=(11 ) 中文两个字节
10.C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配)
string str ="" 分配空间
11.详述.NET里class和struct的异同!
class:放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。
12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
远程逻辑调用,remoing接口只能用在.net中
13.什么是code-behind技术
aspx and cs
14.概述三层结构体系
web/business/dataaccess
15.asp.net如何实现MVC模式,举例说明!
web/business/dataaccess
----------------------------------------------------------------------------------------------------------
1.面向对象的思想主要包括什么?
答:这个题范围太广,不知道说什么.
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集成认证等,原理不清楚.
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中的垃圾回收机制。
答:GC?对象创建了总要清除啊,不然内存哪够用?
20.常用的调用webservice方法有哪些?
答:调用就调用,还有很多方法吗?
以上有答案的仅供参考(不一定正确哦),如果你有更好的答案请回复告诉我.
Q3、

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


Q4、

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

Q5、

坦率的说,我不喜欢ASP.NET。也许,开始许多人会喜欢MS提供的那么一大堆的服务器控件,但真的碰上了复杂的界面,那么这些服务器控件很可能成为“鸡肋”。如果一个程序员没有真正理解MS封装在服务器控件后面的实现机制,这些东西很容易被滥用,成为麻烦的来源。

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


Q6、

委托本质上是一种“方法接口”,它相当于C/C++中的函数指针,当然它比函数指针安全,在C#中通常用于事件处理。与JAVA相比,可以避免使用大量小粒度的匿名类。(不过,也许微软就是使用类似于JAVA的匿名类实现委托的,只不过从字面上看起不是那么回事罢了,谁知道呢?)

事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托(一种“方法接口”)。实际上,如果你处理自定义的事件,就像JAVA中那样用接口实现也是可以的,不过这么做在C#一般没有什么特别的好处。


Q7、Q8你参考一下MSDN,写一两个小程序试试,也就明白是怎么回事了。

转载于:https://www.cnblogs.com/itelite/articles/1095967.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页