ITPub博客

首页 > Linux操作系统 > Linux操作系统 > c#基礎必讀2

c#基礎必讀2

原创 Linux操作系统 作者:Flourish2004 时间:2011-07-29 19:45:01 0 删除 编辑

44ASP.net的身份验证方式有哪些?分别是什么原理?
答: Windwos(默认)IIS...
From(
窗体)用帐户

Passport(
密钥)

45:在.net中,配件的意思是?
答:程序集。(中间语言,源数据,资源,装配清单)

46net Remoting 的工作原理是什么?
答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置

47:根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate OnNew;
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//
请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}
答:if( OnNew != null
OnNew( this, e ;

48SQLSERVER服务器中,给定表 table1 中有两个字段 IDLastUpdateDateID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)

49:根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i–;
test(i);
}
}
}
答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)

50:简要谈一下您对微软.NET 构架下remotingwebservice两项技术的理解以及实际中的应用。
答:WS主要是可利用HTTP穿透防火墙。Remoting可以利用TCP/IP,二进制传送提高效率

51:用C#实现以下功能
a
产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
答 :List L=new List();
Random random = new Random();
for (int i = 1; i <= 100; i++)
{
if (L.IndexOf(i) < 0)
{
L.Add(random.Next(1,100));
}
}
b
对上面生成的数组排序,需要支持升序、降序两种顺序

L.Reverse(L);
L.Sort(L);

52:请说明.net中的错误处理机制,并举例
答 异常是从 Exception 类类继承的对象。异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止。
try
{ //
执行代码,不确定是否会出错 }
catch
{ //
出错处理
}
finally
{ //
无论怎样,都要执行 }

53:请说出强名的含义
答 垃圾回收的原理是根据是否空引用,和该数据类型占用内存来判断该收回多少内存.强类型说白就是必须要有个数据类型.

54:请列出c#中几种循环的方法,并指出他们的不同
FOR WHILE foreach do while

55:请指出.net中所有类型的基类
object

56:请指出GAC的含义
答 全局访问缓存

57SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)

58:什么是WEB控件?使用WEB控件有那些优势?
web控件就是可以在服务器执行的控件,优势在于可以回传数据,带有事件驱动

59: 请解释ASP.NET中以什么方式进行数据验证?
.NET中提供了几个数据验证控件,可以在服务器端或者客户端进行验证。

60: 请谈谈对正则表达式的看法?
答 主要用在字符串的匹配上面,与具体的语言环境无关。

61: ASP.NET中共有几种类型的控件?各有什么区别?
Html 控件 传统的html标记
Web
控件 可以回传数据,事件驱动
自定义 控件 在原有控件的基础上增加功能
复合控件 多个子控件复合成一个新的控件

62: WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。
答 通过实现IPostBack这个接口来执行事件。自动回传就是AutoPostBack,使用自动回传可以监视客户端变化情况并将这种改变返回到服务器端

63: WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
答 能,服务器端控件在html中表现形式还是html标记,所以可以执行客户端事件,有多种方式:1control.Attributes["onclick"]="...;";
2

64: 请解释ASP.NET中的web页面与其隐藏类之间的关系?
答 继承的关系

65: 什么是viewstate,能否禁用?是否所用控件都可以禁用?
答 可以全部禁用,viewstate就是hidden input,只不过加上了微软的编码方式记录控件的状态

66: 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决
答 可能就是事件没有关联,或者根本就没有写读取代码。
解决 检查代码, 设断点调试

67:请解释一个WEB页面中代码执行次序。
答 参看.cs 知道最先执行OnInit(); 然后到Page_Load,最后到具体的执行事件。

68:请解释什么是上下文对象,在什么情况下要使用上下文对象
HttpContext, 在类中调用的时候需要用到HttpContext

69:请解释转发与跳转的区别?
Transfer 是转发 包括HttpHandler对象
Redirect
就是跳转

70: 请解释ASP.NETButtonLinkButtonImageButton HyperLink这四个控件之间的功别
ButtonImageButton将数据传递回服务器
HyperLink
页面之间的导航
LinkButton
主要用于将数据保存到服务器或访问服务器上的数据

71:请解释一下.NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。
答 这个传递方式不定,很多都是传递DataSet XML也可以

72:如果出现ASP.NET中的事件不能触发可能由于什么原因造成?
答 事件丢失,特别是使用VSS的时候最容易造成这种情况,原因不明

73:如果需要在DataGrid控件中的某一列中添加下拉列表框并绑定数据怎么解决?
答 使用模板列来添加DropDwonList绑定数据使用代码前置的方式

74:请解释ASP.NET中的数据绑定与传统数据绑定有什么区别?
答 更灵活 更方便

76:请解释接口的显式实现有什么意义?
答 规定强制执行,保持一致

77: 什么情况用HTML控件,什么情况用Web控件,并比较两者差别
答 客户端表现用HTML控件,如果想和Server端交互,那么加上runat=server,它就成了服务器端控件,但它没有Web控件的很多方法和属性,如果你需要用到,那么还是用Web Controls

78: C#中的接口和类有什么异同。
答 接口只能包含抽象方法,不能包含任何方法实现,不能创建接口实例,接口成员没有访问修饰符,接口成员必须是方法属性事件或者索引器不能包含常数字段运算符也不能有静态成员

 

可访问性的关键字有如下5个:
internal
:在所属程序集中可以访问。
private
:私有成员, 在当前类中可以访问。
protected
:保护成员,在当前类及其子类中可以访问。
public
:公共成员,完全公开,没有访问限制。
internal protected
:在所属程序集或当前类的子类中可以访问。(题目中未提及)
【扩展】

类的修饰符:abstract,sealed,static,unsafe 4个。
abstract
:类是抽象的,不能创建类的实例
sealed
:类是密封的,不能被继承
static
:类是静态的,只有静态成员,没有非静态成员
unsafe
:类有非安全的结构,比如指针

2 .列举ASP.NET 页面之间传递值的几种方式。
答:有 querystring,cookie,session,server.transfer,application 5种方式。

【扩展】
1.
使用QueryString方式(或称url传值、Response.Redirect传值),这是最简单的方式,因为传递的值在浏览器的url中会显示出来,所以用来传递没有安全要求的值。
发送页面代码:
Response.Redirect("index.aspx?username="+txtUserName.Text.Trim());
接收页面代码:
if(Request.QueryString["username"]!=null)
{
strUserName = Request.QueryString["username"];
}
2.
使用cookie方式,cookie由服务器创建,但是保存在客户端

发送页面代码:

HttpCookie userName = new HttpCookie("username");
userName.Value = this.txtUserName.Text.Trim();
Response.Cookies.Add(userName);
Response.Redirect("index.aspx");
接收页面代码:

if (Request.Cookies["username"] != null)
{
strUserName = Request.Cookies["username"].Value;
}
3.
使用Session变量,session在用户向服务器发出首次请求时被创建,在服务器端,在用户关闭浏览器或异常发生时终止(还有别的session过期情况)。

发送页面代码:
Session["username"] = this.txtUserName.Text.trim();
Response.Redirect("index.aspx");
接收页面代码:

if (Session["username"] != null)
{
strUserName = Session["username"].ToString();
}
4.
使用Application变量

发送页面代码:

Application["username"] = this.txtUserName.Text.trim();
Response.Redirect("index.aspx");
接收页面代码:

if (Application["username"] != null)
{
strUserName = Application["username"].ToString();
}
5.
使用Server.Transfer方式(或称为HttpContext方式),要传递的变量可以通过属性或方法来获得,使用属性比较容易一些。

发送页面制作一个属性:
public string GetName
{
get { return this.txtUserName.Text.Trim(); }
}
发送页面代码:
Server.Transfer("index.aspx");
接收页面代码:
w = (WebForm4)Context.Handler;
strUserName = w.GetName;

3.重写、重载和隐藏三个概念的区别。
答:重写(Override)指用Override关键字重新实现基类中的虚方法,在运行过程中,无论通过哪个类型的引用,真正对象类型的方法将被调用。
重载(Overload)指多个方法共享一个名字并且拥有相同的返回值,但是拥有不同的参数。
隐藏(new)指用new关键字重新实现基类中的方法,在运行的过程中通过引用的类型判断应该调用哪个类型的方法。
【扩展】
重写实现的是运行时多态,重载实现的是编译时多态。
override
与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override
是进行基类中函数的重写。为了适应需要。

6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用SessionCookieApplication,您有几种方法进行处理?
答 :
this.Server.Transfer

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/183242/viewspace-703574/,如需转载,请注明出处,否则将追究法律责任。

上一篇: c#基礎必讀1
下一篇: c#基礎必讀3
请登录后发表评论 登录
全部评论

注册时间:2009-01-06

  • 博文量
    149
  • 访问量
    175181