博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

考考你--.net面试第一关(一)

Posted on 2010-08-01 12:02  每天到晚游泳的鱼  阅读(443)  评论(0)    收藏  举报

1、用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

答:

一般为3层:数据访问层,业务层,表示层。每一层可以做为一个工程。  
数据访问层对数据库进行增删查改;业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。  表示层为了与用户交互例如用户添加表单。 
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 
缺点: 增加成本。 

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的实例时,产生什么输出? 
答: B b=new B(); 先执行父类的构造函数,遇PrintFields() 被重写,调用重写方法。输出为

X=1,Y=0 再执行子类构造函数最终值为x= 1 y = -1。 

3、什么叫应用程序域?

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

应用程序域为隔离正在运行的应用程序提供了一种灵活而安全的方法。

应用程序域通常由运行库宿主创建和操作。有时,您可能希望应用程序以编程方式与应用程序域交互,例如想在不停止应用程序运行的情况下卸载某个组件时。

应用程序域使应用程序以及应用程序的数据彼此分离,有助于提高安全性。单个进程可以运行多个应用程序域,并具有在单独进程中所存在的隔离级别。在单个进程中运行多个应用程序提高了服务器伸缩性。

     // Create an Application Domain:
    System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

    // Load and execute an assembly:
    newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

    // Unload the application domain:
    System.AppDomain.Unload(newDomain);

4、CTS、CLS、CLR分别作何解释?
CTS  Common Type System的缩写,中文意思是通用类型系统。

CLS Common Language Specification的缩写,中文意思是公共语言规范

CLR Common Language Runtime的缩写,中文意思是公共语言运行时。
5、什么是装箱和拆箱?

答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。 

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

7、什么是强类型系统?

一般说强类型或弱类型语言
像c#,c++等是强制类型定义的语言,所有变量先定义再使用,数据类型不可变等。

C# 是强类型语言;因此每个变量和对象都必须具有声明类型。

强类型是安全的数据类型,执行效率高,因为安全,所以不能随便赋值;弱类型执行性能上稍逊于强类型,但它是动态的!声明一个弱类型的变量,你可以放string也可以放int或者其他的空间,类类型。