Asp.net必须掌握的一些东西(2)(转)

来源:互联网 发布:白银市连环杀人案知乎 编辑:程序博客网 时间:2024/06/03 18:53
C# property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质
 
C#可否对内存进行直接的操作?
可以
维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么

触发器,性能好,事务性
ADONET相对于ADO等主要有什么改进?
新增dataset等,不需要随时保持连接,性能提高
 
ASPNETASP相比,主要有哪些进步?
asp解释型,aspx编译型,性能提高,有利于保护源码
 
C#中的委托是什么?事件是不是一种委托?
委托是一种安全的函数指针,事件是一种消息机制
 
你对XMLHTTPWEBSERVICE 了解吗?简单描述其特点、作用
xmlhttp可以主动获取远端web代码,类似HttpWebRequest
接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?
接口用于规范,抽象类用于共性。
存储过程和函数的区别
存储过程和函数有2个区别
1 存储过程不一定非要有返回值 数据库中的函数一定有返回值
2 存储过程在前台语言可以直接调用 而函数一般要有sql语句做为载体
事务是什么?
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
游标的作用?如何知道游标已经到了最后?
指示当前记录的位置,检查NULL
触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
一个是操作前,一个是操作后
请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input type="hidden" 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
请说明.net中的错误处理机制,并举例
try catch final
请说出强名的含义
具有自己的key,可以在GAC为公用
请列出c#中几种循环的方法,并指出他们的不同
for wile foreach
请指出.net中所有类型的基类
object
请指出GAC的含义
全局程序集缓存
值类型与引用类型有什么区别?
值类型:在内存开了一份空间,是实际值.   如int   i=0;  
  引用类型:指在内存中是实际类型的副本,也就是一个地址
怎样理解静态变量?
静态变量(static)是相对自动变量(auto)等而言的,一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束,但是如果是局部静态变量,则此静态变量只能在局部作用域内使用,超出范围不能使用,但是它确实还占用内存,还存在.自动变量就是一般的变量,
向服务器发送请求有几种方式?
get post
如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
input type=""
url
数据库
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
三层,表现,逻辑,数据, 安全性,维护性
软件开发过程一般有几个阶段?每个阶段的作用?
需求分析,架构设计,代码编写,QA,部署
通过超链接怎样传递中文参数?
URLEncode URLDecode
请编程遍历页面上所有TextBox控件并给它赋值为string.Empty
foreach
有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.
同一个名称控件直接,或者反射
如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.
const static int classNum=0;
classNum++;
A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.
构造先父后子,析够反之
需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");
在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
using 指令 和语句 new 创建实例 new 隐藏基类中方法
using 引入名称空间或者使用非托管资源
new 新建实例或者隐藏父类方法
谈谈类和结构的区别
类是引用类型、结构是值类型
什么叫做SQL注入,如何防止?请举例说明。
利用sql关键字对网站进行攻击。过滤关键字'等
下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用例
inputStr=inputStr.ToCharArray().Reverse().ToString();
什么是反射?
动态获取程序集信息
用Singleton如何写设计模式
static属性里面new ,构造函数private
C#中的垃圾回收机制是怎样的?
三个generation,当每个generation内存满了的时候检查引用,无引用就回收内存
什么是Application Pool?
Web应用,类似Thread Pool,提高并发性能
链表和数组的区别,各有什么优缺点.
一个可以动态增长,一个固定(VB中可以Redim),性能数组教好
什么是友元函数?
friendly声明,可以访问protect级别方法
什么是虚函数?
可以被重写
什么是抽象函数?
必须被重写
什么是内存泄漏,怎样最简单的方法判断被存泄漏 ?
C++,C中忘了释放内存,内存不会再次分配
1SQL Server的两种索引是何形式?索引的作用?索引的优缺点
cluster和非cluster,加速查找,占用额外控件,维护索引耗费时间
什么是XML?
可扩展标记语言,可以做配置文件,可以传输数据,可以存储数据
简述 private、 protected、 public、 internal 修饰符的访问权限。
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
进程和线程的区别
进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
成员变量和成员函数前加static的作用
它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。
malloc和new的区别
new是C++的关键字。malloc在分配内存时必须按给出的字节分配,new可以按照对象的大小自动分配,并且能调用构造函数。可以说new是对象的对象,而malloc不是。本质上new分配内存时,还会在实际内存块的前后加上附加信息,所以new所使用的内存大小比malloc多。
堆和栈的区别
栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。
栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。
栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;而栈是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。栈是系统数据结构,对于进程/线程是唯一的;堆是函数库内部数据结构,不一定唯一。不同堆分配的内存无法互相操作。栈空间分静态分配和动态分配两种。静态分配是编译器完成的,比如自动变量(auto)的分配。动态分配由alloca函数完成。栈的动态分配无需释放(是自动的),也就没有释放函数。为可移植的程序起见,栈的动态分配操作是不被鼓励的!堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。
在.Net中,类System.Web.UI.Page 可以被继承么?
可以
你觉得ASP.NET 2.0(VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可
1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,
3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
5, 在ASP.NET中增加了40多个新的控件,减少了工作量
.net的错误处理机制是什么
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
重载与覆盖的区别
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
C#中的委托是什么?事件是不是一种委托?
委托是一种安全的函数指针,事件是一种消息机制

new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);
datagrid.datasouse可以连接什么数据源
dataset,datatable,dataview , IList
概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
概述o/r mapping 的原理>
利用反射,配置 将类于数据库表映射
用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。

什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释
答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
如何理解委托?
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
UDP连接和TCP连接的异同。
前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
进程和线程分别怎么理解?
进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.

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