志达IT
做快乐程序员

二十道经典C#面试题

1、鄙人面的代码中,如何引证命名空间fabulous中的great?
1namespacefabulous2{3//codeinfabulousnamespace4}5namespacesuper6{7namespacesmashing8{9//greatnamedefined10}11}
答:super.smashing.great
2、字符串“supercalifragilisticexpialidocious”对于string变量是否太长?为什么?
答:否,在C#中,对于字符串的长度没有约束。
3、概述反射和序列化?
答:反射:反射供给了封装程序集,模块和类型目标,能够用反射动态地创立类型的实例,将类型绑定到现有目标,或许从现有目标类型里获取类型,然后调用类型的办法或访问字段和属性。
序列化:将目标转化为另一种前言传输的格局过程。如,序列化一个目标,用Http经过internet在客户端服务器之间传递该目标,在另一端用反序列化从该流中重新得到目标。
4、C#中的托付是什么?事情是不是一种托付呢?
答:托付是一种安全的类似与函数指针,但是它比指针要安全的多,它能够把办法作为一个参数传递给另一个办法,能够理解为指向函数的引证。事情是一种消息机制,它是一种托付,托付不带办法体。
5、C#中索引器完成过程,是否只能根据数字索引?
答:不是的,可所以任意类型。c#
6、请你说说.NET中类和结构的区别?
答:结构和类具有相似的语法,但结构受到的约束比类要多。结构不能声明有默许的结构函数,为结构的副本是又编译器创立和销毁的,所以不需求默许的结构函数和析构函数。结构是值类型,所以对结构变量所做的改动不会影响其的原值,而类是运用类型,改动其变量的值会改动其原值。声明结构用Struck关键字,申明类用class关键字,向办法传递结构是时是经过值传递的,而不是经过引证。与类不同,结构的实例化能够不运用New关键字。类能够完成接口。
7、如果有两个整数存储在变量var1和var2中,什么样的布尔测验能够查看它们其中一个是否大于10?
答:(var1>10)^(var2>10)。
8、在c#中,using和new这两个关键字有什么含义?
答:using引入称号空间或许运用非托管资源。
new新建实例或许躲藏父类办法。
9、const和readonly有什么区别?
答:const关键字用来声明编译时常量。
readonly用来声明运转时常量。
10、System.String和System.StringBuilder有什么区别?
答:System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并供给一些对这个字符串修改的办法。
11、请在C#中举例说明new关键字可用于那些方面?
答:在C#中,new关键字可用作运算符或修饰符。作为运算符用于在堆上创立目标和调用结构函数。作为修饰符用于躲藏基类成员的承继成员。
12、sealed关键字的效果是什么?什么情况需求运用sealed关键字?
答:sealed修饰符首要用于防止非有意的派生,但是它还能促使某些运转时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用能够转化为非虚拟调用来处理。
13、在C#中,哪些关键字能够用于版别操控?
答:override关键字和new关键字均可用于版别操控。
在C#中,默许情况下办法不是虚拟的。若要使办法成为虚拟办法,必须在基类的办法声明中运用virtual修饰符。然后,派生类能够运用override关键字重写基类中的虚拟办法,或运用new关键字躲藏基类中的虚拟办法。如果override关键字和new关键字均未指定,编译器将宣布正告,并且派生类中的办法将躲藏基类中的办法。c#
14、别离写出下列句子履行的成果。
(1)Console.WriteLine(“{0}–{0:p}good”,12.34F);
(2)Console.WriteLine(“{0}–{0:####}good”,0);
(3)Console.WriteLine(“{0}–{0:00000}good”,456);
答:履行成果别离为:
(1)12.34–1,234.00%good
(2)0–good
(3)456–00456good
15、C#中的数组类型有何特色?
答:C#中的数组类型的特色包括:
(1)数组一般用于存储同一种类型的数据,包括Object类型。
(2)数组是一种引证类型,而不是值类型。
(3)C#中除了能够有一维数组、多维数组外,还有交错型数组。
16、过错和反常有什么区别,为什么要进行反常处理,用于反常处理的句子有哪些?
答:过错是指在履行代码过程中产生的事情,它中止或搅扰代码的正常流程并创立反常目标。当过错中止流程时,该程序将测验寻找反常处理程序(一段告知程序如何对过错做出呼应的代码),以帮助程序恢复流程。换句话说,过错是一个事情,而反常是该事情创立的目标。
当运用短语“产生反常”时,表明存在问题的办法产生过错,并创立反常目标(包括该过错的信息及产生的时间和位置)来呼应该过错。导致呈现过错和随后反常的要素包括用户过错、资源失利和编程逻辑失利。这些过错与代码完成特定使命的办法有关,而与该使命的目的无关。
如果不进行反常处理,即不对过错做出呼应,程序的健壮性就会大打折扣,乃至无法确保正常运转,所以必须要进行反常处理。
用于反常处理的句子有:try-catch句子、try-catch-finally句子、throw句子。
17、C#中不同整型之间进行转化的准则是什么?
答:在整型之间进行转化时,小范围类型能够隐式转化为大范围类型,但大范围类型转化为小范围类型时需求运用显式转化。
18、简述装箱和拆箱的过程。
答:装箱是将值类型隐式地转化为object类型或许转化为由该值类型完成了的接口类型。装箱一个数值会为其分配一个目标实例,并把该数值拷贝到新目标中。拆箱是显式地把object类型转化成值类型,或许把值类型完成了的接口类型转化成该值类型。
19、什么是命名空间?命名空间和类库的联络是什么?
答:称号空间是对类的一种逻辑上的分组,即将类依照某种联络或联络划分到不同的称号空间下。
称号空间又能够包括其它的称号空间,例如System.Windows.Forms,是指System称号空间下有Windows称号空间,Windows称号空间下有Forms称号空间。
20、能够用C#编写哪些类型的运用程序?
答:操控台运用程序,Windows运用程序,水晶报表运用程序,ASP.NETWeb运用程序,ASP.NETWeb服务运用程序,ASP.NET水晶报表Web运用程序和智能设备运用程序等。

赞(0)
未经允许不得转载:志达IT网站 » 二十道经典C#面试题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

志达IT网站 每天分享编程和互联网的IT技术博客

登录/注册联系我们