分享

C# 面试题大全 【七】

 china_liu 2011-06-05

75、谈谈你对设计模式的理解(传智播客.Net培训班原创模拟题)

世界上本没有模式,用的人多了,也就有了模式。不用刻意记每种模式的名字,手中无模式,心中有模式。

大部分设计模式就是接口、抽象类的一个组合。ADO.Net基于接口编程,SafeDbCommandSafeConnectionSettingsProvider。没必要记模式的名字。

举例:传智播客.net培训时SettingsProvider、第三方支付的例子。

76、谈谈ViewState。谈谈对ASP.Net原理的理解。谈谈ASP.Net生命周期。

LabelTextbox在禁用ViewState的时候自增的不同表现

Http是无状态的WebForm为了实现基于http的“有状态”从而简化开发,ViewState用来在两次请求间保持状态。页面返回前将界面的状态序列化到ViewState中,这样就将状态保存在了浏览器中,下次页面提交的时候会顺便再将ViewState提交到服务器,这样服务器就根据ViewState还原了状态,这样WebForm开发就像有状态一样了。谈谈自定义AutoInc控件。

77postget的区别

get的参数会显示在浏览器地址栏中,而post的参数不会显示在浏览器地址栏中;

使用post提交的页面在点击【刷新】按钮的时候浏览器一般会提示“是否重新提交”,而get则不会;

get的页面可以被搜索引擎抓取,而用post的则不可以;

post可以提交的数据量非常大,而用get可以提交的数据量则非常小(2k),受限于网页地址的长度。

post可以进行文件的提交,而用get则不可以。

 参考阅读:http://www.cnblogs.com/skynet/archive/2010/05/18/1738301.html 

78、下面的程序执行结果是什么?(传智播客.Net培训班原创模拟题)

    class Person

    {

        public int Age { getset; }

    }

            int i1 = 20;

            int i2 = i1;

            i1++;

            Console.WriteLine(i2);

            Person p1 = new Person();

            p1.Age = 20;

            Person p2 = p1;

            p1.Age++;

            Console.WriteLine(p2.Age);

答案:

20

21

解释:引用类型和值类型的区别。 

79Http默认的端口号是(80)、Ftp默认的端口号是(21)、SQLServer的默认端口号是(1433)(传智播客.Net培训班原创模拟题)

80运算符++a表示(先将a1,然后表达式的值为a1后的值),i++表示(表达式的值为a,然后a1)。

81、下面程序的执行结果是什么?(传智播客.Net培训班原创模拟题)

            int i = 10;

            Console.WriteLine(i++);

            Console.WriteLine(++i);

            Console.WriteLine(i=20);

答案:

10

12

20        

解答:前两个参考第80题,i++表达式的值为i自增之前的值,所以打印10,执行完成后i变成11,执行++i的时候表达式的值为自增以后的值12。C#中赋值表达式的值为变量被赋值的值,因此最后一个就输出i赋值后的值20

while((line=reader.ReadLine())!=null)

{

}

82、如果不用VisualStudio,用哪个命令行编译C#程序?(*)(传智播客.Net培训班原创模拟题)

答:csc.exe。

83、下列哪个名词和WebService不直接相关?(B)(传智播客.Net培训班原创模拟题)

A、UDDI 

B、GUID

C、WSDL

D、SOAP

SOAP和HTTP的关系:SOAP基于Http协议的,和普通网页不同的是网页返回HTML,SOAP则是符合SOAP协议的XML数据。

84、.Net Framework中的类是专门供C#调用的是吗?(传智播客.Net培训班原创模拟题)

答:错。VB.Net等语言都可以调用.Net Framework中的类。CTS、CLS。

85、开放性问题:说出尽可能多的基于.Net Framework的语言。(*)(传智播客.Net培训班原创模拟题)

参考解答:C#、VB.Net、F#、PowerShell、IronPython、J#、Ruby.Net

86、.Net、ASP.Net、C#、VisualStudio之间的关系是什么?(传智播客.Net培训班原创模拟题)

答:.Net一般指的是.Net Framework,提供了基础的.Net类,这些类可以被任何一种.Net编程语言调用,.Net Framework还提供了CLR、JIT、GC等基础功能。

ASP.Net是.Net中用来进行Web开发的一种技术,ASP.Net的页面部分写在aspx 文件中,逻辑代码通常通过Code-behind的方式用C#、VB.Net等支持.Net的语言编写。

C#是使用最广泛的支持.Net的编程语言。除了C#还有VB.Net、IronPython等。

VisualStudio是微软提供的用来进行.Net开发的集成开发环境(IDE),使用VisualStudio可以简化很多工作,不用程序员直接调用csc.exe等命令行进行程序的编译,而且VisualStudio提供了代码自动完成、代码高亮等功能方便开发。除了VisualStudio,还有SharpDevelop、MonoDevelop等免费、开源的IDE,VisualStudio Express版这个免费版本。

87、AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?(传智播客.Net培训班原创模拟题)

答:AJAX解决的问题就是“无刷新更新页面”,用传统的HTML表单方式进行页面的更新时,每次都要将请求提交到服务器,服务器返回后再重绘界面,这样界面就会经历:提交→变白→重新显示这样一个过程,用户体验非常差,使用AJAX则不会导致页面重新提交、刷新。

AJAX最本质的实现是在Javascript中使用XMLHttpRequest进行Http的请求,开发中通常使用UpdatePanel、JQuery等方式简化AJAX的开发,UpdatePanel的方式实现AJAX最简单,但是数据通讯量比较大,因为要来回传整个ViewState,而且不灵活,对于复杂的需求则可以使用JQuery提供的ajax功能。

UpdatePanel的内部原理。

AJAX最重要的问题是无法跨域请求(www.rupeng.com →so.rupeng.com),也就是无法在页面中向和当前域名不同的页面发送请求,可以使用在当前页面所在的域的服务端做代理页面的方式解决。

在如鹏网项目中发帖的时候显示相关帖的功能、站内搜索项目中显示搜索Suggestion、数据采集项目中都用到了AJAX。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多