常见的c#面试题总结(详细)

1,说明private,protected,public,internal这几种修饰符的含义?
private:私密的,只能在本类中使用。
protected:受保护的,只能在本类以及子类中使用。
public:公开的,可以随意调用。
internal:当前项目,也可以理解为同一个命名空间。
2,Asp.net页面传值的几种方式?
a.Cookie
如:HttpCookie cookie = new HttpCookie("cookieName");
cookie.Value = "要传递的值";
Response.AppendCookie(cookie);
Server.Tranfer("要传值的页面Test.aspx");
Test.aspx.cs代码如下:
string str = Request.Cookie["cookieName"].Value.ToString();

b.Session
如:Test1.aspx.cs
Session["sessionName"] = "要传递的值";
Server.Tranfer(Test2.aspx);

Test2.aspx.cs

string str = Session["sessionName"].ToString();

c.Application 方式同Seesion
d.QueryString
如:Test1.aspx.cs

string url = Test2.aspx?name="name"&pwd="pwd";
Response.Redirect(url);
Test2.aspx.cs
string str = Request.QueryString["name"].ToString();
string str2 = Request.QueryString["pwd"].ToString();

e.Server Tranfer
如:Test1.aspx.cs

需设置页面属性如:
private string name;
public string name{get,set};
Server.Tranfer("Test2.aspx");

Test2.aspx.cs

Test1 t = new Test1();
string name = t.name;

3,c#中的委托是什么意思?事件是委托吗?
委托简单来说就是把一个方法作为参数用在另一个方法中。
事件可以理解为一种特殊的委托。
4.overriding和overloading的不同?
overriding:重写 是指子类将基类中的方法进行重写,一般是改变了基类中的方法体,方法名以及参数都相同。
overloading:重载 是指同一类中方法名相同,但是参数列表不同。
overriding 和overloading两者之间无直接关系。
5.简单说一下c#中索引器的实现,是不是只有整型能作为索引值?
索引器是针对实例化的对象而言,只有实例化的对象才能用索引,一般格式是public Object this[int index]{}
public 修饰词一般都是公开的,这样建立索引才有意义;
Object 可以是任意类型;
this是固定不变的,指的就是对象;
index的类型一般是整型,但是其它类型也可以,比如说string decimal等。
6.用.net开发web程序,一般是几层结构?每层结构之间有什么关系吗?
一般是3层,业务层,数据层,视图层
业务层用于处理业务逻辑
数据层用于与数据库交互
视图层用于向用户展示画面
7.CTS.CLR.CLS分别说明他们的含义?
CTS:Common Type System:通用类型系统
CLR:Common Language Runtime:通用语言运行时,即通用语言运行环境
CLS:Common Language Specification :通用语言规范
这三者可以这样简单理解:CTS只有在这个系统内的语言且符合CLS的语言才能在CLR运行。
8.装箱和拆箱?
装箱:从值类型到引用类型
拆箱:从引用类型到值类型
9.什么是受管制的代码?
即在CLR运行的代码
10.什么是Code-Behind技术?
即页面与代码分离。
11.class 和struct异同?
class:引用类型 内存上变量在栈中,实际值在堆中。
struct:值类型 内存中都在栈中
 未完待续

你可能感兴趣的:(c#)