1. 抽象类的特性是什么?

抽象类不能被实力化,在抽象类上使用new操作符是错误的。

抽象类允许(但不必要)包含抽象方法和入口。

抽象类不能用scaled修饰符。

2. abstract关键字怎么用?

修饰符abstract是用于类的关键字,以表明这个类本身不能直接有实例或者对象,并且对于其他类来说它只能是一个“基类”。

3. goto语句怎么用?

goto语句仍然包含在C#语言中。这个goto可以用来从一个循环内部跳转到外部。但是从循环外部跳入循环内是不允许的。

4. 控制台应用程序和窗口应用程序有什么区别?

控制台应用程序,设计用来在没有用户界面的命令行中运行。
窗口应用程序,设计用来通过用户界面在用户桌面执行。

5. return语句怎么用?

return语句与程序 (方法或者函数)相关。在执行return语句的时候,系统将控制权从被调用程序交给调用程序。return语句用于两种目的:

立即返回当前执行的代码的调用者

返回给当前执行的代码的调用者一些值。

6. Array和LinkedList之间的区别是什么?

数组是不关心彼此元素位置的简单数字序列。他们之间的位置彼此独立。增加,删除或者修改任何数组元素都是非常容易的。相对于数组,链表是一个复杂的数字序列。

7. C#有throws子句吗?

不,不像Java,C#不需要开发者指定方法可以抛出的异常。

8. C#支持可变数目的参数吗?

是的,使用params关键字。该参数指定为特定类型的参数列表。

9. 可以重写私有虚方法吗?

不可以,私有方法不能在类外访问。

10. 什么是多播委托?

每个委托对象保持对一个单独方法的引用。但是,一个委托对象保持对多个方法的引用并调用它们是可能的。这样的委托对象成为多播委托或者组合委托。

11. 什么是C#独有的特性?

XML文档.

12. 在C#中使用异常是推荐的吗?

是的,在.NET框架中异常是推荐的错误处理机制。

13. 在switch语句中break语句是做什么的?

break语句终结它所在的循环。它也改变了程序执行的流程。

在switch语句中,break语句用在一个case语句的结尾处。在C#中break语句是强制性的,避免了一个case语句流向另一个case语句。

14. 什么是智能导航?

因为服务端验证和页面被刷新导致页面刷新时,光标位置保持不变。

15. CONST和READONLY的区别是什么?

都是为了定义常量值。const字段只能在声明这个域的时候初始化。readonly字段可以在声明时或者构造函数中定义。

16. C#有throws子句吗?

不,不像Java,C#不需要(甚至不允许)开发者指定方法可以抛出的异常。

17. 方法可以重载的不同方式是什么?

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

18. 事件有返回值吗?

没有,事件没有返回类型。

19. 事件是什么?

事件是一个基于另一个程序方法执行的动作。

事件是被对象或者类使用来通知其他对象发生的事件的委托类型类成员。

事件可以通过event关键字来声明。

20. 什么是标识符?

标识符无他,它是用来在程序中唯一识别各种实体的名称。

21. C#中有哪些不同的文本类型?

布尔值: True和False是Boolean类型,分别映射到真和假的状态。

整数:用于编写类型Int,uInt,long和ulong的值。

实数:用于编写类型float, double和decimal的值。

字符:代表单字符,通常由有引号的字符组成,如‘a’。

字符串: C#支持两种类型的字符串,规则字符串和原义字符串。规则字符串由0个或多个括在双引号中的字符组成,如“116110″。原义字符串由@字符后跟带双引号的字符组成,如@”hello”。

Null: 代表null类型。

22. 什么是数据封装?

数据封装,也被称为数据隐藏,它是类的实现细节对保持对用户隐匿的机制。用户只能通过执行称为方法的特殊函数来对隐藏了成员的类执行一组有限的操作。

23. 可以重写私有虚方法吗?

不可以,私有方法不能在类外访问。

24. 子程序和函数的主要区别是什么?

子程序没有返回值,而函数有。

25. C#和C++的区别是什么?

C#不支持#include语句。它只用using语句。

C#中,类定义在最后不使用分号。

C#不支持多重继承。

数据类型的显示转换在C#中比C++中安全很多。

C#中switch也可用于字符串值。

命令行参数数组的行为在C#中和C++中不一样。

26. 什么是嵌套类?

嵌套类是类中的类。

嵌套类是声明发生在另一个类或者接口里面的任何类。

27. 可以给静态构造函数参数吗?

不可以,静态构造函数不可以有参数。

28. C#中,字符串是值类型还是引用类型?

字符串是对象(引用类型)。

29. C#提供拷贝构造函数吗?

不,C#不提供拷贝构造函数。

30. 类或者结构可以有多个构造函数吗?

可以,类或者结构可以有多个构造函数。C#中构造函数可以被重载。

31. 可以创建接口的实例吗?

不可以,你不可以创建接口的实例。

32. 接口可以包含字段吗?

不可以,接口不能包含字段。

33. 类可以有静态构造函数吗?

是的,类可以有静态构造函数。静态构造函数在任何静态字段被访问之前被立即自动调用,并且通常用来初始化静态类成员。它在第一个实例被创建或者任何静态成员被引用之前自动调用。静态构造函数在实例构造函数之前调用。一个例子如下所示。

34. C#中委托的主要作用是什么?

委托主要用于定义回调方法。

35. 投影(Shadowing)和重写(overriding)的区别是什么?

重写仅仅重定义实现而投影重定义整个元素。

重写派生类可以通过“ME”关键字引用父类元素,但投影中你可以通过”MYBASE”访问父类元素。

36. 事件可以用访问修饰符吗?

可以,你可以在事件中用访问修饰符。你可以对事件使用portected关键字,这样只允许继承类访问。你可以使用private修饰事件,仅可以供当前类对象访问。

37. 为什么在代码中用virtual关键字?

代码中Virtual关键字是用来定义可以在派生类中重写的方法和属性的。

38. 什么是构造函数和析构函数?

构造函数和析构函数是特殊的方法。

构造函数和析构函数是每个类的特殊方法。

每个类都有自己的构造函数和析构函数,并且在类实例被创建或者销毁时自动调用。

每当你访问类的时候,构造函数就初始化所有类成员。当对象不想再需要的时候,析构函数就销毁它们。

39. 我们怎么抑制finalize方法?

GC.SuppressFinalize()。

40. C#支持可变数目的参数吗?

是的,使用params关键字。

该参数指定为特定类型的参数列表,例如,int。为了最大的灵活性,类型可以是object。

使用这种方法的标准例子是System.console.writeLine()。

41. 哪个方法用来启动一个线程?
Start。

42. 什么是泛型?

泛型帮助我们创建灵活的强类型集合。

泛型基本上从数据类型中分离了逻辑,以保持更好的可重用性,更好的可维护性等等。

43. 编译时多态性和运行时多态性的区别是什么?

编译时多态性

编译时多态性也被称为方法重载。

方法重载是指有两个或更多同名但含有不同签名的方法。

运行时多态性

运行时多态性也被称为方法重写。

方法重写是指有两个或更多的同名方法,含有相同的方法签名但对应不同的实现。

44. 哪一个命名空间使XML中多线程编程可行?

System.Threading。

45. 在C#中可以声明一个静态块吗?

不可以,因为C#不支持静态块,但它支持静态方法。

46. 方法可以声明为密封(sealed)吗?

在C#中方法不可以声明为sealed。但当我们在派生类重写一个方法的时候,我们可以将重写的方法定义为sealed。通过其sealed,我们就可以避免对该方法的进一步重写。

47. 在C#中用什么命令来实现属性?

C#中用get和set修饰符来实现属性。

48. 什么是静态成员?

定义为静态的成员,可以从类级别上直接调用,而不是从类实例上调用。

49. C#中继承一个类的语法是什么?

当一个类从另一个类派生时,基类的成员就变为派生的成员。

在访问基类的成员所使用的访问修饰符指定了派生类中的基类成员的访问状态。

C#中从另一个类继承类的语法如下:

class MyNewClass : MyBaseClass

50. C#中while循环和do while循环的基本区别是什么?

while循环在一开始测试它的条件,这意味着如果条件求值为真,封闭的语句块执行0或者更多次。do while循环至少遍历一次语句块然后在最后才检查条件。

51. 子程序和函数的主要区别是什么?

子程序没有返回值,而函数有。

52. C#中什么是密封类?

sealed修饰符用来阻止从一个类派生。如果一个密封类被指定为另一个类的基类时会发生编译时错误。

53.类和接口的区别是什么?

抽象类可以实现它的一些成员,但接口不能实现它的任何成员。

接口不能有字段,而抽象类可以有字段。

接口仅可以从另一个接口继承并且不能继承抽象类,而抽象类可以继承另一个抽象类或另一个接口。

类可以同时继承多个接口,而类不能同时继承多个类。

抽象类的成员可以定义访问修饰符而接口成员不能定义访问修饰符。

54. 抽象方法和虚方法之间的区别是什么?

抽象方法不提供实现,并且强制派生类重写该方法(除非派生类也是个抽象类),而虚方法可以有实现并且在派生类中重写与否是可选的。因此虚方法可以实现并提供了派生类重写的选择。抽象方法不能提供实现并且强制派生类重写该方法。

55. 什么是静态方法?

只要方法不试图访问任何实例数据或者其他实例方法,那么声明它为静态的是可能的。

56. 什么是New修饰符?

new修饰符隐藏了基类的成员。C#仅仅支持签名的隐藏。

57. C#中get和set属性的优势是什么?

get属性访问器用于返回属性值。

set属性访问器用来设置新的值。

58. const和readonly之间有什么区别?

const声明的字段不能使用static修饰符,而readonly可以使用static修饰符。

const字段只能在声明时初始化,而readonly可以在声明时或在构造函数中初始化。

const字段的值在设计时就计算出来了,而readonly的值在运行时计算。

59. Is C# object oriented?C#是面向对象的吗?

是的,C#和传统的Java及C++一样是面向对象的语言。

60. 有哪些不同种类的多态性?

有两种类型的多态,它们是:

编译时多态性

运行时多态性

61.什么是.Net FrameWork ?

定义:.Net FrameWork类似于JVM(虚拟机),他是微软Web Services的引擎。我们习惯的叫做.NET框架,同时我们写的C#,VB.NET,等程序必须在.Net框架上运行。
组成:.Net FrameWork由两部分组成,分别是公共语言运行时(CLR),统一类库集(FCL)。
公共语言运行时(CLR):包括两部分分别为,公共语言规范(CLS)及公共类型规范(CTS)。
统一类库集(FCL):涵盖了我们以后开发中要用到的基本框架类,ADO.NET,WINFORM,WEBFORM,WEBSERVICES等类库集。

C# 面试题 (三)的更多相关文章

  1. python面试题三:Python 网络编程与并发

    1 简述 OSI 七层协议. OSI七层协议模型主要是: 应用层(Application):为用户的应用程序(例如电子邮件.文件传输和终端仿真)提供网络服务. 表示层(Presentation):使用 ...

  2. JUC在深入面试题——三种方式实现线程等待和唤醒(wait/notify,await/signal,LockSupport的park/unpark)

    一.前言 在多线程的场景下,我们会经常使用加锁,来保证线程安全.如果锁用的不好,就会陷入死锁,我们以前可以使用Object的wait/notify来解决死锁问题.也可以使用Condition的awai ...

  3. PHP面试题三

    1.nginx使用哪种网络协议? nginx是应用层 我觉得从下往上的话 传输层用的是tcp/ip 应用层用的是http fastcgi负责调度进程 2. <? echo 'hello tush ...

  4. 记一道css面试题 : 三栏布局两边宽度固定,中间宽度自适应,并且布局随屏幕大小改变。

    前几天面试时有道css题没做出来,回来好好学习一番后把其记录下来. 题目是这样的:左中右三栏布局,左右两栏宽度固定,左右两栏的宽度为200像素,中间栏宽度自适应.当屏幕小于600px时,3栏会分别占用 ...

  5. Java常考面试题(三)

    序言 说说今天遇到的一件小事吧,在遇到问题,查找答案时,看到很多人的博客里面都有提到关键字眼,可让人觉得可恨的是,大多数人写的博文中,基本上都是照着书上的语言发表的,看了跟没看一样,没有一点通俗的语言 ...

  6. Mybatis常见面试题 三

    1.什么是mybatis? (1)mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动.创建连接.创建statem ...

  7. python面试题(三)

    一.项目技术点梳理 (一)Django项目 本项目是用python的Django框架开发的前后端不分离项目.项目采用MVT架构,使用的MySQL和redis数据库,用Django自带的orm与数据库交 ...

  8. web前端整套面试题(三)--网易的面试题

    题型分析: 一.选择题部分(30分) 元素出栈可能性 排序方法的优缺点 HTTP请求方法 关系型数据库种类 多线程(进程与线程共享) 计算机网络协议 linux指令 JQuery实现方法 二.编程题( ...

  9. CCF-NOIP-2018 提高组(复赛) 模拟试题(三)

    T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...

  10. Mysql系列常见面试题(三)

    1.Mysql数据表在什么情况下容易损坏? 服务器突然断电导致数据文件损坏,强制关机,没有先关闭Mysql服务等. 2.Mysql有关全校的表都有那几个? Mysql服务器通过权限表老控制用户对数据库 ...

随机推荐

  1. yii2.0的gradview点击按钮通过get方式传参

    1.直接看views层里的代码就可以了 , <!--?= GridView::widget([ 'dataProvider' =--> $dataProvider, 'filterMode ...

  2. nginx知识图谱

    nginx启动起来后有两个进程,一个是主进程,一个是守护进程

  3. January 28 2017 Week 4 Saturday

    Do what you say, say what you do. 做你说过的,说你能做的. Do more than what you say, and sometimes say more tha ...

  4. SAP Cloud for Customer里Sales Order和Sales Quote的建模方式

    SAP Cloud for Customer的Sales工作中心里有Sales Quote和Sales Order两个视图,一个用于销售报价单,另一个用于销售订单. 流程上是先有报价单 ,报价单是一份 ...

  5. AngularJs学习笔记--E2E Testing

    原版地址:http://docs.angularjs.org/guide/dev_guide.e2e-testing 当一个应用的复杂度.大小在增加时,使得依靠人工去测试新特性的可靠性.抓Bug和回归 ...

  6. xwork-2.1.2.jar与xwork-core-2.1.6.jar的区别是什么? 在线等待 先谢谢了

    两个包是一样,都是struts2的核心包.不过有时下在的struts2的jar包中只有xwordk-core-2.1.6.jar包.做项目的时候最好两个都导入.

  7. Codeforces Round #433 (Div. 2)【A、B、C、D题】

    题目链接:Codeforces Round #433 (Div. 2) codeforces 854 A. Fraction[水] 题意:已知分子与分母的和,求分子小于分母的 最大的最简分数. #in ...

  8. oracle 10g将数据导入到指定表空间的步骤

    --创建临时表空间 create temporary tablespace  yhtemp tempfile 'D:/oracle/oradata/Oracle10g/yhtemp.dbf' size ...

  9. 面试准备——(二)专业知识(1)Linux

    面试的问题: 腾讯: 1. 查看进程的命令 美团: 1. 常用的命令——美团/滴滴 2. 如何在性能测试的时候查看进程 3. kill -9/-15区别 滴滴: 1.如何找到一个特定文件 2. 如何替 ...

  10. python-递归的实现

    一.概念 递归算法是一种直接或者间接地调用自身算法的过程,在计算机编写程序中,递归算法对解决一大类问题是十分有效的. 特点: ①递归就是在过程或者函数里调用自身. ②在使用递归策略时,必须有一个明确的 ...