1.面向对象的思想主要包括什么?
继承
多态
封装
●
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
●
继承:子类拥有父类的所有数据和操作。
有两种形式的多态–
重载与重写。
用户控件就是
.ascx
扩展名的东西喽
,
可以拖到不同的页面中调用
,
以节省代码
.
比如登陆可能在多个页面上有
,
就可以做成用户控件
,
但是有一个问题就是用户控件拖到不同级别的目录下后里面的
图片
等的相对路径会变得不准确
,
需要自已写方法调整
.
问这样的问题
,
一般是迷惑你
.
因为新手还是分不清楚用户控件和服务器控件
(
也称自定义控件
)..
用户控件一般用在内容多为静态
,
或者少许会改变的情况下
..
用的比较大
..
类似
ASP
中的
include..
但是功能要强大的多
..
在C#中,string str = null 与 string str = “”的区别。
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间
请详述在dotnet中类(class)与结构(struct)的异同
Class 可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间
请详述在dotnet中类(class)与结构(struct)的异同
Class 可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用sqlConnection,在线操作数据库..任何对sqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作.
DataReader和DataSet最大的区别在于,DataReader使用时始终占用sqlConnection,在线操作数据库..任何对sqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作.
8.C#中的接口和类有什么异同。
接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用
触发器的作用
触发器可以查询其它表,而且可以包含复杂的 sql 语句。它们主要用于强制复杂的业务规则或要求。触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。
保证数据库操作变更能接到通知
保证数据库操作变更能接到通知
常见的设计模式
抽象工厂模式、适配器模式、外观模式 command命令模式,桥接模式,组合模式,装饰模式,状态模式,备忘录模式等。
软件设计模式太多,就我的理解简单说一下最常见的MVC模式。
MVC模式是1996年由Buschmann提出的:
模型(Model):就是封装数据和所有基于对这些数据的操作。
视图(View):就是封装的是对数据显示,即用户界面。
控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。
软件设计模式太多,就我的理解简单说一下最常见的MVC模式。
MVC模式是1996年由Buschmann提出的:
模型(Model):就是封装数据和所有基于对这些数据的操作。
视图(View):就是封装的是对数据显示,即用户界面。
控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
4.列举一下你所了解的XML技术及其应用
在
dotnet
中有两大类数据类型,即值类型和引用类型,值类型存贮在栈中,而引用类型存贮在动态的堆中,栈是先进先出的有系统管理的空间,而堆是由应用程序控制的可随时申请和释放该空间,在
Donnet
中一般情况下有垃圾收集器处理,他们的不同导致在编程上的不同。
例: StringBuilder a=new StringBuilder();// 将 StringBuilder 的一个首地址传给 a
StringBuilder b=a;// 将 StringBuilder 的一个首地址传给 b
b.Append("mxh");
Console.WriteLine(a);
a=null;
Console.WriteLine(b);
输出结果: mxh
mxh
"a=null" 的意思是: a 的引用置为空但此时 StringBuilder 的堆空间并没有被释放,因此在此之后,输出 b 时,仍然可以输出 mxh
例: StringBuilder a=new StringBuilder();// 将 StringBuilder 的一个首地址传给 a
StringBuilder b=a;// 将 StringBuilder 的一个首地址传给 b
b.Append("mxh");
Console.WriteLine(a);
a=null;
Console.WriteLine(b);
输出结果: mxh
mxh
"a=null" 的意思是: a 的引用置为空但此时 StringBuilder 的堆空间并没有被释放,因此在此之后,输出 b 时,仍然可以输出 mxh
6.ADO.net中常用的对象有哪些?分别描述一下。
7.如何理解委托?
C# 中的委托类似于 C 或 C++ 中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与 C 或 C++ 中的函数指针不同,委托是面向对象、类型安全的,并且是安全的。
9.。net中读写数据库需要用到哪些类?他们的作用
10.UDP连接和TCP连接的异同。
11.ASP.net的身份验证方式有哪些?分别是什么原理?
12.进程和线程分别怎么理解?
13.什么是code-Behind技术。
14.活动目录的作用。
.
15..net中读写XML的类都归属于哪些命名空间?
System.XML类
16.解释一下uddi、WSDL的意义及其作用。
17.什么是SOAP,有哪些应用。
simple object access protocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在TCP/IP上的soap)的一种规范
是微软大力推广的Web Service使用的协议..
是微软大力推广的Web Service使用的协议..
19.如何理解.net中的垃圾回收机制。
如果发现内存不够,则垃圾回收器,将全部对象作为无效对象(被回收对象),然后先将全局变量,static,处于活动中的局部变量,以及当前CG指针指向的对象放入一个表中.然后
会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.
会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.
我一般用的是WSDL..或者web引用..
21列举一下你所了解的XML技术及其应用
.xml 可以用来做网页(xslt) xml可以当作数据库 xml可以用来保存对象的系列化
xml 用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config
.xml 可以用来做网页(xslt) xml可以当作数据库 xml可以用来保存对象的系列化
xml 用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config
C#可否对内存进行直接的操作?
可以
可以
触发器,性能好,事务性
ADO。NET相对于ADO等主要有什么改进?
新增dataset等,不需要随时保持连接,性能提高
接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?
接口用于规范,抽象类用于共性。
接口用于规范,抽象类用于共性。
事务是什么?
具有原子性特点
具有原子性特点
游标的作用?如何知道游标已经到了最后?
指示当前记录的位置,检查NULL
指示当前记录的位置,检查NULL
请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input type="hidden" 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input type="hidden" 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
请说明.net中的错误处理机制,并举例
try catch final
try catch final
请说出强名的含义
具有自己的key,可以在GAC为公用
具有自己的key,可以在GAC为公用
请列出c#中几种循环的方法,并指出他们的不同
for wile foreach
for wile foreach
请指出.net中所有类型的基类
object
object
请指出GAC的含义
全局程序集缓存
全局程序集缓存
值类型与引用类型有什么区别?
值和指针的区别
值和指针的区别
向服务器发送请求有几种方式?
get post
get post
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
三层,表现,逻辑,数据, 安全性,维护性
三层,表现,逻辑,数据, 安全性,维护性
需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");
string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");
在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
谈谈类和结构的区别?
类是引用类型、结构是值类型
类是引用类型、结构是值类型
下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
C#中的垃圾回收机制是怎样的?
三个generation,当每个generation内存满了的时候检查引用,无引用就回收内存
三个generation,当每个generation内存满了的时候检查引用,无引用就回收内存
什么是虚函数?
可以被重写
可以被重写
什么是抽象函数?
必须被重写
必须被重写
什么是内存泄漏,怎样最简单的方法判断被存泄漏 ?
C++,C中忘了释放内存,内存不会再次分配
C++,C中忘了释放内存,内存不会再次分配
1sql Server的两种索引是何形式?索引的作用?索引的优缺点?
cluster和非cluster,加速查找,占用额外控件,维护索引耗费时间
cluster和非cluster,加速查找,占用额外控件,维护索引耗费时间
简述 private、 protected、 public、 internal 修饰符的访问权限。
private : 私有成员,在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
private : 私有成员,在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
进程和线程的区别
成员变量和成员函数前加static的作用
malloc和new的区别
new是C++的关键字。malloc在分配内存时必须按给出的字节分配,new可以按照对象的大小自动分配,并且能调用构造函数。可以说new是对象的对象,而malloc不是。本质上new分配内存时,还会在实际内存块的前后加上附加信息,所以new所使用的内存大小比malloc多。
堆和栈的区别
栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。
栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。
栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;而栈是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。栈是系统数据结构,对于进程/线程是唯一的;堆是函数库内部数据结构,不一定唯一。不同堆分配的内存无法互相操作。栈空间分静态分配和动态分配两种。静态分配是编译器完成的,比如自动变量(auto)的分配。动态分配由alloca函数完成。栈的动态分配无需释放(是自动的),也就没有释放函数。为可移植的程序起见,栈的动态分配操作是不被鼓励的!堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。
堆:一般由程序员分配释放。用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多个新的控件,减少了工作量
2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,
3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
5,在ASP.NET中增加了40多个新的控件,减少了工作量
重载与覆盖的区别
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
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格式的消息.
第一种: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格式的消息.
1.
填空
: (1)
面向对象的语言具有
___
继承性、封装性、多态性。
(3)
列举
ADO.net
中的五个主要对象
Command
、
Connection
、
DataSet
、
DataAdapter
、
DataReader
。
2.
不定项选择
:
(1)
以下叙述正确的是:
A. ExecuteNonQuery B. ExecuteScalar
C. Fill D. ExecuteReader
3.
简述
private
、
protected
、
public
、
internal
修饰符的访问权限
。
可能不是连续的。)
(1)queryString
(2)session
(3)cookie
(4)server.transfer
(5)hidden control/view state
(6)static member.
(7)cache
(8)application
(9)DataBase
(10)xml or other Files
(11)XMLHTTP or Hidden iFrame/frame
(12)Context.user.identity
我正在做一个通用提示叶面,所有叶面出现问题都要,传递几个变量字符串到同一个叶面 hitMsg.aspx 变量字符串包括提示语言,即将跳转的叶面,跳转时间。在 1-11 种方案中哪个更好些 ?
(1)queryString 的毛病是无法传递很长字符串,比如系统错误信息往往就一整个屏幕。
(2)session 的毛病是不能过多使用,依赖 Cookie, 容易丢失。
(3)cookie 的毛病是依赖客户端设置,不可靠。
(4)server.transfer 的毛病是接收叶面要为发送叶面准备好,只能定制专门一个叶面接受定制好的叶面。
不能是一个叶面接受任何叶面。
(5)hidden control/view state 只能传递本页。除非特殊制作。
(6)static member. 无法保证线程安全,可能会此处栽瓜他处得豆。
(7)cache 不适合使用一次就扔的变量。
(8)application 全局的,开销大。
(9)DataBase 全局固化的 , 开销更大,除非做日志跟踪。
(10)xml or other Files 全局固化的 , 开销大,除非做日志跟踪。
(11)XMLHTTP or Hidden iFrame/frame ,做这个过于烦琐。
(12)Context 这个占用了用户 id ,不适合做这个。
(2)session
(3)cookie
(4)server.transfer
(5)hidden control/view state
(6)static member.
(7)cache
(8)application
(9)DataBase
(10)xml or other Files
(11)XMLHTTP or Hidden iFrame/frame
(12)Context.user.identity
我正在做一个通用提示叶面,所有叶面出现问题都要,传递几个变量字符串到同一个叶面 hitMsg.aspx 变量字符串包括提示语言,即将跳转的叶面,跳转时间。在 1-11 种方案中哪个更好些 ?
(1)queryString 的毛病是无法传递很长字符串,比如系统错误信息往往就一整个屏幕。
(2)session 的毛病是不能过多使用,依赖 Cookie, 容易丢失。
(3)cookie 的毛病是依赖客户端设置,不可靠。
(4)server.transfer 的毛病是接收叶面要为发送叶面准备好,只能定制专门一个叶面接受定制好的叶面。
不能是一个叶面接受任何叶面。
(5)hidden control/view state 只能传递本页。除非特殊制作。
(6)static member. 无法保证线程安全,可能会此处栽瓜他处得豆。
(7)cache 不适合使用一次就扔的变量。
(8)application 全局的,开销大。
(9)DataBase 全局固化的 , 开销更大,除非做日志跟踪。
(10)xml or other Files 全局固化的 , 开销大,除非做日志跟踪。
(11)XMLHTTP or Hidden iFrame/frame ,做这个过于烦琐。
(12)Context 这个占用了用户 id ,不适合做这个。
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);
}
}
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();
}
}
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#
语言
)
-------------------------------------------
a0 = 0,a1 = 1,An = An-1 + An-2(n>=2)
int[] iArray = new int[31];
iArray[0] = 0;
iArray[1] = 1;
for (int i = 2; i <= 30; i++)
{
iArray[i] = iArray[i - 1] + iArray[i - 2];
}
--------------- 参考答案二 ---------------------------------
int[] iArray = new int[31];
iArray[0] = 0;
iArray[1] = 1;
for (int i = 2; i <= 30; i++)
{
iArray[i] = iArray[i - 1] + iArray[i - 2];
}
--------------- 参考答案二 ---------------------------------
int i=0,ii=1,s=1,num=0;
while(num<=30)
{
s=i+ii;
Response.Write(i+"+"+ii+"="+s+"<br>");
if(s==1)
{
i=1;
}
else
{
i=s-i;
}
ii=s;
num++;
}
while(num<=30)
{
s=i+ii;
Response.Write(i+"+"+ii+"="+s+"<br>");
if(s==1)
{
i=1;
}
else
{
i=s-i;
}
ii=s;
num++;
}
========================
10.
程序设计
:
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
(C#
语言
)
要求:
1.
要有联动性,老鼠和主人的行为是被动的。
2.
考虑可扩展性,猫的叫声可能引起其他联动效应。
三个类
,
猫
,
老鼠和主人
猫
public sealed class Cat
{
//
猫叫时引发的事件
public event EventHandler Calling;
public void Call()
{
Console.WrietLine("
猫叫了
...");
if(Calling != null) //
检查是否有事件注册
}
}
public sealed calss Mouse
{
public void Escape(object sender,EventArgs e)
{
Console.WriteLine("
老鼠逃跑了
...");
}
}
//
主人,发生猫叫的时候惊醒
public sealed class Master
{
public void Wakened(object sender,EventArgs e)
{
Console.WriteLine("
主人惊醒了
...);
}
}
//
用于测试的执行方法
//
程序入口点
public static Program
{
public static int Main(string[] args)
{
//
建立猫
Cat cat = new Cat();
//
建立老鼠
Mouse mouse = new Mouse();
//
建立主人
Master master = new Master();
//
注册事件
cat.Calling += new EventHandler(mouse.Escape);
cat.Calling += new EventHandler(master.Wakened);
//
猫开始叫
cat.Call();
}
}
要点:
1.
联动效果,运行代码只要执行
Cat.Cryed()
方法。
2.
对老鼠和主人进行抽象
评分标准 : <1>. 构造出 Cat 、 Mouse 、 Master 三个类,并能使程序运行 (2 分 )
<2> 从 Mouse 和 Master 中提取抽象( 5 分)
<3> 联动效应,只要执行 Cat.Cryed() 就可以使老鼠逃跑,主人惊醒。 (3 分 )
评分标准 : <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();
}
}
-----------------------------
问题:
1
.
ASP.NET
中的身份验证有那些?你
当前项目
采用什么方式验证请解释
Windows | Forms | Passport
2
.什么是
WEB
控件?使用
WEB
控件有那些优势?
3
.请解释
ASP
。
NET
中以什么方式进行数据验证?
4
.请谈谈对正则表达式的看法?
5
.
ASP
。
NET
中共有几种类型的控件?各有什么区别?
8
.
ASP
。
NET
与
ASP
相比有什么优势?
11
.什么是
viewstate
,能否禁用?是否所用控件都可以禁用
?
15
.请解释什么是上下文对象,在什么情况下要使用上下文对象
19
.请解释一下。
NET
多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。
20
.如果出现
ASP
。
NET
中的事件不能触发可能由于什么原因造成?
22
.请解释
asp.net
中的数据绑定与传统数据绑定有什么区别?
23
.请解释
.net
采用委托实现的事件模型与
JAVA
中采用接口实现的事件模型有什么区别,以图示方式解释。
24
.请解释接口的显式实现有什么意义?
Q
:您在什么情况下会用到虚方法?它与接口有什么不同?
Q
:值类型与引用类型有什么区别?
Q
:怎样理解静态变量?
Q
:向服务器发送请求有几种方式?
Q
:软件开发过程一般有几个阶段?每个阶段的作用?
需求分析,概要设计,详细设计,软件编码,软件测试
一,可行性分析
二,需求分析
三,实施和编码
四,测试
五,维护
二,需求分析
三,实施和编码
四,测试
五,维护
Q
:微软推出了一系列的
Application Block
,请举出您所知道的
Application Block
并说明其作用?
Q
:请列举一些您用到过的设计模式以及在什么情况下使用该模式?
Q
:您对
WebService
的体会?
For(i=0;i<this.control.count;i++)
If(control is TextBox)
{
(control as TextBox).Text = string.Empty;
}
Q
:请编程实现一个冒泡排序算法?
using System;
namespace BubbleSorter
{
public class BubbleSorter
{
public void Sort(int [] list)
{
int i,j,temp;
bool done=false;
j=1;
while((j<list.Length)&&(!done))
{
done=true;
for(i=0;i<list.Length-j;i++)
{
if(list[i]>list[i+1])
{
done=false;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
}
}
j++;
}
}
}
public class MainClass
{
public static void Main()
{
int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
BubbleSorter sh=new BubbleSorter();
sh.sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。