.net技术种面试、笔试题汇总4

.net技术类面试、笔试题汇总4

61、是否可以从一个static方法内部发出对非static方法的调用? 

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部不能发出对非static方法的调用。

63、说出一些常用的类、接口,请各举5个 

要让人家感觉你对.Net开发很熟,所以,不能仅仅只列谁都能想到的那些东西,要多列你在做项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。

常用的类:StreamReaderWebClientDictionary<K,V>StringBuilderSqlConnectionFileStreamFileRegexList<T> 

常用的接口:IDisposableIEnumerableIDbConnectionIComparable、ICollection、IListIDictionary

要出乎意料!不要仅仅完成任务!笔试不是高考!处处要显出牛!

说出几个开源软件?MySQLLinux、 DiscuzApachePaint.NetAndroidChromeNotepad++……

开源项目有一些是开发包。开源软件指的是可以直接用的。JqueryNPOIASP.Net MVCSilverlight  ToolkitAJAX toolkitjson.net

得瑟!

65、编写一个单例(Singleton)类。

参考复习ppt

把构造函数设置为private,设置一个publicstatic的对象实例

public FileManager

{

    private FileManager(){}

    public readonly static FileManager Instance = new FileManager();

}

扩展:搜“C#  Singleton”,有线程安全的更牛B的实现

66、什么是sql注入?如何避免sql注入?

用户根据系统的程序构造非法的参数从而导致程序执行不是程序员期望的恶意SQL语句。使用参数化的SQL就可以避免SQL注入。

详细参考复习ppt。举例子,摆事实!

1' or 1=1

67数据库三范式是什么?

用自己的话解释,而不是背概念。

传智播客风格的非严谨却一下子明了的解答方式:

第一范式:字段不能有冗余信息,所有字段都是必不可少的。

第二范式:满足第一范式并且表必须有主键。

第三范式:满足第二范式并且表引用其他的表必须通过主键引用。

员工内部→老大→外部

记忆顺序:自己内部不重复→别人引用自己→自己引用别人。

72postget的区别

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

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

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

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

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

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

73、下面的程序执行结果是什么?(传智播客.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

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

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

            int i = 10;

            Console.WriteLine(i++);

            Console.WriteLine(++i);

            Console.WriteLine(i=20);

  Console.WriteLine(i==20);

答案:

10

12

20

True        

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

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

{

}

下面程序的执行结果是什么?

bool b=false;

if(b=true)

{

    Console.WriteLine("yes");

}

else

{

    Console.WriteLine("no");

}

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

A、UDDI 

B、GUID

C、WSDL

D、SOAP

UDDI用来自动发现WebService的协议(*)

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

WSDL(WebService Defination Language)是对WebService上的方法名、参数进行描述的协议。对接口的描述。

SOAP(Simple Object Access Protocol)是对参数、返回值以什么样的格式进行传递进行描述的协议。对报文的格式规范。

实际工作中应该是自己调用别人的WebService或者别人调用自己的WebService,沟通语言就是WSDL,拿到WSDL什么都不用操心。

WebService是跨平台、跨语言调用,可以跨防火墙;缺点:效率低。所以适用于两个非内部系统的通讯(比如炒股软件和证券交易所之间的通讯)

WCF是对WebService、Socket、MQ等通讯方式的一个统一,底层还是采用这些通信协议,可以简化这些程序的开发,不用再换不同通信协议的时候重写代码并且学一堆新的技术。所以WCF和WebService不是一个竞争取代关系。

WCF是对.Net Remoting、WebService、MQ等通讯方式的一个高级封装,让我们开发不同通讯协议的程序的时候很简单,不用学更多的东西。并不是替代.Net Remoting、WebService、MQ这些东西。