标签:另一个 main style abs line 规范 直接 声明 编译
1.private、protected、public、internal修饰符的访问权限
private 私有成员,只有在类的内部可以访问
protected 保护成员,在类的内部和继承类中可以访问
public 公共成员,完全公开,没有访问限制
internal 在同一个命名空间内可以访问
2.ASP.NET页面之间传值得几种方式(Cookie 。Application等)
1)QueryString
QueryString是一种非常简单的传值方式,可以将传送的值暴露在浏览器地址栏,如果传递对安全性
要求不高或结构简单的数值时,可以使用这个方式,但是传递数组或对象就不能用了
A。使用方法: a、在源页面中构造URL地址
b、在源页面使用 Response.Redirect(URL)重定向到上面的URL地址
c、才目的页面中使用 Response.QueryString["name"] 取出上面URL地址中传递的值
eg:
(1) index.aspx
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
(2)index2.aspx
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2)Session
Session使用简单,不仅能传递简单数据类型,还能传递对象,数据量大小不限制,但是在Session
变量中存储大量的数据会消耗较多的服务器资源。容易丢失。
A。使用方法:a、在源页面中构造Session变量:Session["Name"]=“Value(Or Object)”
b、在目的页面使用Session变量取出传递的值。Result=Session["Name"]
B。Session不用时可以销毁,方法是 Session.Remove(“session名”)=====清除一个
Session.Clear()======清除所有
eg:
index.aspx
private void Button_Click(object sender,System.EventArgs e)
{
Session["name"]=Lable.Text;
}
index2.aspx
private void Page_Load(object sender,EventArgs e)
{
string name;
name=Session["name"].ToString();
}
3)Servere.Transfer
这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导
到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的。
ps:比较Server.Transfer和Response.Redirect的区别。
a、Server.Transfer在服务器端完成,所以客户端浏览器中的URL地址是不会改变的;
Response.Redirect是客户端完成,向服务器端提出新的页面处理请求,所以
客户端浏览器中的URL地址是会改变的
b、Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。
c、Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,
而Response.Redirect则十分灵活,可以跳转到任何URL地址。
d、Server.Transfer可以将前一个页面的各种类型的值传到新的页面;Response.Redirect
则只能借助URL中带参数或是结合上面四种办法把各种类型的值传到新的页面。
使用方法:
a、在源页面中使用Page类的Server.Transfer传递页面数据。Server.Transfer("b.aspx","false")
b.在目的页面中,使用Context.Handler来接收数据:FormerPage formerPage = (FormerPage)Context.Handler; 然后用
formerPage的属性和方法来获取前一个页面的值,或者直接用Context.Items["myParameter "]
eg:
index.aspx
public string Name
{ get{ return Label1.Text;} } private void Button1_Click(object sender, System.EventArgs e) { Server.Transfer("b.aspx"); }
index2.aspx
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //实例a窗体
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
3.C#中的委托是什么?事件是不是一种委托?
委托是一种特殊的引用类型,它将方法作为特殊的对象封装,从而将方法作为变量或参数进行传递,
事件是一种特殊的委托
using System;
namespase delegate
{
delegate void Function(double x,double y) //定义委托
class Program
{
static void Main()
{
Function fun;
double a=2,b=3;
Console.Write("请选择函数:");
int i= int.Parse(Console.ReadLine());
if(i==1)
{
fun=new Function(Add);
}
fun(a,b);
}
static void Add(double x,double y)
{
Console.WriteLine("{0}+{1}={2}",x,y,x+y);
}
}
}
该程序首先定义了一个委托类型 Function,注意delete关键字之后需要说明委托的返回类型
(没有返回类型位void)和参数类型,程序主方法首先创建了该类型的变量fun,之后可以将
指定的方法封装到该委托对象,注意方法的参数列表和返回类型都必须和委托的定义保持一致。
C#还允许将方法名直接写在委托赋值表达式的等号右边。eg: Function fun=Add;
4.override(重写)与overload(重载)的区别
override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,
重写(重新实现)父类中的方法。不管重写还是覆盖都不会影响父类自身的功能。
覆盖使用new关键字,重写会改变父类方法的功能即调用子类的功能,覆盖仍调用父类功能
虚方法,实方法都可被覆盖,抽象方法和接口不可以。
重写(覆盖)的规则:
1、重写方法的参数列表与返回值必须完全与被重写的方法的相同
2、重写方法的访问修饰符大于被重写方法的访问修饰符(public>protected>default>private)
3、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
4、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
5、静态方法不能被重写为非静态的方法(会编译出错)。
6、父类中被重写的方法必须声明为virtual或abstract类型,子类方法用override关键字修饰,
eg:
public class parent
{
public virtual string Function()
{
return "1";
}
}
public class A : parent
{
public override string Function()
{
return "2";
}
}
public class B : parent
{
public new string Function() //new放在public前面和后面效果一样。且不会编译出错
{
return "3";
}
}
public class JustForTest
{
public void DoTest()
{
parent p=new parent();
A a = new A();
Parent parent1=new A();
B b = new B();
Parent parent2=new B();
Console.WriteLine(p.Function); //输出1
Console.WriteLine(a.Function());//输出2
Console.WriteLine(parent1.Function);//输出2
Console.WriteLine(b.Function());//输出3
Console.WriteLine(parent2.Function)//输出1
}
}
注:B b = new parent()编译出错(无法将类型parent隐式转换为B)
overload
重载发生在同一个类中,方法名相同,参数不同,返回类型可以不同的情况。应对不同需求
5.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
C#索引器可以根据任何数据类型进行索引
6.用.NET做B/S的系统,使用几层来开发,为什么这样分层?
一般为三层,数据访问层,业务逻辑层,表示层
数据访问层实现对数据库的增删改查
业务层一般分为两层,业务表现层实现对表示层的沟通,业务规则层实现用户密码的安全等
表示层实现与用户的交互
优点:分工明确,易于调试,具有可扩展性。缺点:增加成本
7.什么叫应用程序域?
8.CTS、CLS、CLR分别作何解释?
CTS:通用语言系统 。CLS:通用语言规范 。CLR:公共语言运行库
9.什么是装箱?
从值类型转换为引用类型是装箱
10..net中读写数据库需要用到哪些类?他们的作用?
DataSet: 数据存储器
DataTable:用于存储一个表的数据
SqlConnection:用于创建一个到数据库的连接
SqlCommand:执行SQL语句命令
DataReader:用于顺序读取数据
DataAdapter:数据的集合,用于将数据填充到DataSet或DataTable
11.ASP.NET的身份验证方式有哪些?分别是什么原理?
windows:使用 IIS 验证方式
Forms:使用基于窗体的验证方式
Passport:采用 Passport cookie验证模式
None:不采用任何验证方式
12.什么是Code-Behind技术?
Code-Behind就是代码分离,在 ASP.NET 中通过 aspx页面指向 cs 文件的方式
实现逻辑和处理逻辑的分离,有助于 web 应用程序的创建,合理分工,易于维护
13.在.net中,配件的意思是?
14.常用的调用 WebService 的方法有哪些?
1)使用WSDL.exe命令行工具
2)使用VS.NET中的Add Web Reference菜单选项
15. .net Remoting的工作原理是什么?
服务器向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
注:
Remoting,简而言之,我们可以将其看着是一种分布式处理方式。.net Remoting
和 webservice都是用来通信的框架,可以像调用本地对象一样调用远程对象,区别是
(1)webservice是使用应用层 http 协议封装的,可以被很多其他的语言调用,只要知道
webserice的地址,就可以使用,简单但效率一般,.net Remoting是用传输层 tcp协议封装的,
可以以二进制传输数据,效率高。.net Remoting是基于.net的反射机制,只方便.net使用
(2)webservice能穿越防火墙,http协议是现在广泛应用的协议,防火墙一般不会做屏蔽,
并不是说webserivece有某种功能可以穿越防火墙
16.C#中,string str1=null 与 string str2=“”的区别
str2是一个空字符串,空字符串是一个特殊的字符串,只不过它的值为空,在内存中是有
明确的指向的,string str1=null没有分配内存,引用指向了一个null,string str2=“”
这个引用指向了一个地址。地址里面存的是空的字符
17.类(class)和结构(struct)的异同
a、类是引用类型,其实例被分配在托管堆上。结构是值类型,实例被分配在栈上。
b、类实例的赋值,赋值的是引用地址。结构实例的赋值,赋值的是值
c、类作为参数类型传递,传递的是引用地址,结构传递的是值
d、类支持继承,结构不支持
e、结构总是有一个默认的无参构造函数,其不允许删除和重新定义,也不会因为
我们定义了其他带参构造函数而自动消失,而类里面如果被重载了一个或多个
带参构造函数,则编译器不再为该类提供默认的构造函数
18. SQL SERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID
表示更新的事物号,LastUpdateDate表示更新时的服务器事件,请获得最后更新的事物号
select id from table1 where lastUpdateDate=(select max lastUpdateDate from table1)
19.写出一条sql语句,取出表A中第31到40的记录(以自动增长的id作为主键,id可能不是连续的)
select top 10 * from A where id not in(select top 30 id from A)
20.GC是什么?
GC是 .NET 的垃圾回收机制
在 .NET 中,托管代码的内存管理是自动的,有GC 进行管理对于非托管堆的代码,.NET无法
进行管理。CLR允许时,内存分为托管堆和栈两部分,其中,栈是用来存储值类型的数据,托管
堆是用来存储引用类型的数据,而托管堆是GC 处理的内存部分。进程中的每个线程都有自己的堆栈
标签:另一个 main style abs line 规范 直接 声明 编译
原文地址:http://www.cnblogs.com/mff520mff/p/7424095.html