.NET考题

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 113 收藏 0 点赞 0 评论 0

 1、  传入某个属性的set方法的隐含参数的名称是什么?

Value

 

2、  如何在C#中实现继承?

: 类名(冒号加类名)

 

3、  C#支持多重继承么?

不支持

 

4、  被protected修饰的属性/方法在何处可以访问?

类内部及继承类中

 

5、  私有成员会被继承么?

会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。

 

6、  请描述一下访问修饰符protected internal.

在同一个Assembly中,他的访问级别和public一样,而跨Assembly访问时,他的访问级别同protected一样。即protected的范围 + internal的范围。

 

7、  C#提供一个默认的无参数构造函数,当我实现了另一个有一个参数的构造函数时候,还想保留这个无参数的构造函数,这样我应该写几个构造函数?

2个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数

 

8、  C#中所有对象共同的基类是什么?

System.Object

 

9、  重载和重写有什么区别?

重载是指同名方法,不同的参数,不同的实现

而重写则是覆盖父类中的方法实现

 

10、              在方法定义中,virtual有什么含意?

Virtual标记方法为虚方法,可以在子类中用new来覆盖重写,多用于实现多态

 

11、              可以重写私有的虚方法么?

不可以

 

12、              能够阻止某一个类被其他类继承么?

可以,用封装类

 

13、              能够实现允许某个类被继承,但不允许其中的某个方法被重写么?

可以,标记这个类为public,并标记这个方法为sealed

 

14、              如何区别重载方法?

不同的参数类型,不同的参数个数,不同的参数顺序

 

15、              Const和readonly有什么区别?

const可以用于局部常量,而readonly,实际是类的initonly字段,显然不能是局部的。

 

16、              如何在表中随机取记录数100条?请写出示例SQL语句。(数据库指SQL Server,下同)

SELECT TOP 100 * FROM table_name ORDER BY NEWID()

 

17、              请列举出几种有效防止SQL注入漏洞的措施?

1、程序中过滤掉“’”“%”“[”“]”等字符

2、使用存储过程传递参数,并在存储过程中不使用sql语句拚接查询条件。

 

18、              删除表中重复的记录(指某两条或多条记录的所有字段值均相同),但需保留1条。请写出示例SQL语句。

select distinct * into #Tmp from tableName

drop table tableName

select * into tableName from #Tmp

drop table #Tmp

 

19、              向有标识(IDENTITY)列字段的表添加记录是否可行,如果可行,应如何操作?可使用SQL语句说明。

可以,以下语句表示将显式插入的开关打开,写入记录,然后关闭显式插入

SET IDENTITY_INSERT Game_ActivityUserTotal ON

insert Game_ActivityUserTotal(id) values(1)

SET IDENTITY_INSERT Game_ActivityUserTotal OFF

 

20、              假设表DataTableDictTB包含一个字段MaxID(INT),且仅有一条记录。如何在并发操作情况下,修改MaxID字段加一,并取出更新后的MaxID数值,同时要求读取出来的结果不重复?请写出示例SQL语句。

参考答案1:

DECLARE @MaxID INT

UPDATE

DataTableDictTB

SET

MaxID = MaxID + 1,

@MaxID = MaxID + 1

 

参考答案2:

DECLARE @MaxID INT

 

BEGIN TRAN

BEGIN

UPDATE

DataTableDictTB

SET

MaxID = MaxID + 1

SELECT @MaxID = MaxID FROM DataTableDictTB

END

 

21、              页面A.aspx的内容如下:
<script>
Window.open(“B.aspx?id=1&CodeName=通讯应用类”)
</script>
页面B.aspx的内容如下:
<%=System.Web.HttpContext.Current.Request.QueryString[“CodeName”].ToString()%>

为何页面B.aspx输出的CodeName内容是乱码,如何解决?

页面A.aspx的内容修改如下:

<script>

Window.open(“B.aspx?id=1&CodeName=” + escap(‘通讯应用类’))

</script>

 

 

22、              禁用aspx页面的ViewState会导致哪些功能不可用?

1、  页面中的事件驱动失效

2、  用户提交的信息将在提交后的不再保存显示

3、  页面中的ViewState信息不再存在,这样达到页面瘦身进而提供页面显示性能

 

 

23、              使用Asp.net开发的网站有哪几种sessionState存储方式,分别各是什么?

1、  进程内(InProcess)存储方式

2、  进程外(SessionStateService)存储方式

3、  数据库(SQL Server)存储方式

 

 

24、              使用哪些方式的弹出页面会被大部分页面拦截工具所拦截,相反哪些又不会被拦截?

1、  会被拦截的方式:window.open

2、  不会被拦截的方式:<a>、window.showModalDialog

 

 

25、              请简要的谈谈你对Ajax技术的认识。

XMLHttp是ajax的最常用传输方式

 

 

26、              对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度(仅模拟,不要求精确显示)?

1、  可以在到达目的页面之前,先浏览带有显示进度条的页面,再停顿几秒后到达目的页面

2、   如在按钮事件中加入如下代码:

Response.Write(“<div id=’mydiv’ >”);

Response.Write(“_”);

Response.Write(“</div>”);

Response.Write(“<script>mydiv.innerText = ”;</script>”);

Response.Write(“<script language=javascript>;”);

Response.Write(“var dots = 0;var dotmax = 10;function ShowWait()”);

Response.Write(“{var output; output = ‘正在装载页面’;dots++;if(dots>=dotmax)dots=1;”);

Response.Write(“for(var x = 0;x < dots;x++){output += ‘·’;}mydiv.innerText =  output;}”);

Response.Write(“function StartShowWait(){mydiv.style.visibility = ‘visible’; “);

Response.Write(“window.setInterval(‘ShowWait()’,1000);}”);

Response.Write(“function HideWait(){mydiv.style.visibility = ‘hidden’;”);

Response.Write(“window.clearInterval();}”);

Response.Write(“StartShowWait();</script>”);

Response.Flush();

Thread.Sleep(10000);

 

 

27、              自定义page基类时导致你在Vs.Net中无法所见即所得的编辑Aspx页面,打开页面时将抛出以下错误,你只能看到Html代码界面,请问如何解决?

 

1、  出现该错误后将该工程重新编译通过后,再次打开aspx页面将不会再出现该错误

2、  最好将访问HttpContext的代码放到OnInit中,如下:

protected override void OnInit(EventArgs e)

{

base.OnInit (e);

HttpCookieCollection cookies = HttpContext.Current.Request.Cookies;

}

 

3、  如果你确实需要在构造器中进行某些Field的初始化等工作,这时又需要使用Request等内容,那么就需要先判断HttpContext是否为Null。如下:

 

public class BasePage : Page

{

public BasePage()

{

if(HttpContext.Current != null)

{

HttpCookieCollection cookies = HttpContext.Current.Request.Cookies;

}

}

}

 

 

28、              如何在B/S结构的邮件系统中防止邮件的附件被盗链,请提供解决方案的思路?

1、  附件的下载使用文件流的方式输出,而不能采用虚拟目录的方式下载

2、  用HttpHandler控制对特定文件的请求和响应,对HTTP请求中Head信息的Referrer参数进行检查,以判断是否从正确的入口或链接请求该资源。

 

 

29、              如何在DataGrid的日期类型的数据列进行格式化显示,如格式化显示为“2007-01-03”?
日期类型的数据列如下:
<asp:DataGrid ID=”dtgCusts” Runat=”server” AutoGenerateColumns=”False”>
<Columns>
<asp:BoundColumn DataField=”CreateDate” />
</Columns>
</asp:DataGrid>

1、  使用DataGridItemDataBound事件进行数据格式化

2、  如下

<asp:DataGrid ID=”dtgCusts” Runat=”server” AutoGenerateColumns=”False”>

<Columns>

<asp:BoundColumn DataField=”CreateDate” DataFormatString=”{0:yyyy-MM-dd}” />

</Columns>

</asp:DataGrid>

 

 

30、              如何在多个站点之间实现单点登录(SSO),请提供解决方案的思路?

1、  如果多个网站是使用同一个顶级域名,则可以使用Cookies方式

2、  如果多个网站是使用同一个顶级域名,且都是使用ASP.NET开发的网站,则可以使用表单认证的方式

 

评论列表
文章目录