ASP.NET知识总结
1. internal关键字
解:internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的.
2. ASP.NET 页面之间传递值的几种方式
解:1. Querystring。
Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。
2. Session变量
使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。
虽然这种方法有点复杂,但也不失为一种在页面传值的方式。
3. 简单的C#索引器举例
解:
using System;
using System.Collections;
class MyClass{
private string[] data = new string[5];
public string this[int index] {
get { return data[index]; }
set { data[index] = value; } }
}
class MyClient{
public static void Main() {
MyClass mc = new MyClass();
mc[0] = "Rajesh";
mc[1] = "A3-126";
mc[2] = "Snehadara";
mc[3] = "Irla"; mc[4] = "Mumbai";
Console.WriteLine("{0},{1},{2},{3},{4}", mc[0], mc[1], mc[2], mc[3], mc[4]); }}
4. 用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
解:一般为3层。
数据访问层,业务逻辑层,表示层。
数据访问层:对数据库进行增删查改。
业务层:一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层:为了与用户交互。例如用户添加表单。
5. 什么叫应用程序域?
解:应用程序域(AppDomain)。可以理解成很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,在安全性方面有保障。另外对于同一个进程内不同域之间的通信也相对简单一点。
AppDomainSetup info = new AppDomainSetup();
info.LoaderOptimization = LoaderOptimization.SingleDomain;
AppDomain domain = AppDomain.CreateDomain("MyDomain", null, info);
domain.ExecuteAssembly("C:\\test\\DomainCom.exe");
AppDomain.Unload(domain);
6. 什么是装箱和拆箱?
解:从值类型转换到引用类型--装箱。
从引用类型转换到值类型--拆箱。
7. .net中读写数据库需要用到那些类?他们的作用?
解:SqlDataAdapter , DataSet ,SqlCommand
private static DataSet SelectRows(
DataSet dataset, string connectionString,string queryString) {
using (SqlConnection connection = new SqlConnection(connectionString)) {
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
adapter.Fill(dataset);
return dataset; }
}
8. ASP.net的身份验证方式有几种?
解:1. Windows Authentication,包括NTLM和Kerbros
2. Form Authentication。
3. Passport Authentication。需要安装Passport Software Developer Kit.这种认证方式适合于跨站之间的应用,用户只有一个用户名和密码可以访问任何成员站。
9. wsdl.exe的使用方式?
解:
wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
(根据指定的XML Web Service生成一个.wsdl文件和以C#语言描述的客户端代理类)
wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx
(根据指定的XML Web Service生成一个以C#语言描述的客户端代理类- myProxyClass.cs)
wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx
(根据指定的XML Web Service生成一个以VB语言描述的客户端代理类- myProxyClass.vb)
10. struct和class的区别?
解:
Struct` | Class | |
地址分配 | 栈 | 堆 |
效率 | 高 | 低 |
适合对象 | 小 | 大而复杂 |
类型 | 值类型 | 引用类型 |
拷贝时 | 创建新结构 | 复制引用 |
继承性 | 不可继承与被继承 | 可继承,可自定义(sealed) |
11. abstract class和interface有什么区别?
解:
abstract class | interface | |
概念 | 抽象类型 | 协议 |
非静态数据成员 | 可有 | 不可有 |
方法默认行为 | 可有 | 不可有 |
与被继承类的关系 | is a | implement |
12. .try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
解:会执行,在return前执行。
13. C#反射即举例
解:
Reflection,中文翻译为反射。
这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型 (class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息。
(1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。
(2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。
(3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetConstructors或 GetConstructor方法来调用特定的构造函数。
(4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetMethods或GetMethod方法来调用特定的方法。
(5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。
(6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。
(7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
(8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。