旗下导航:搜·么
当前位置:网站首页 > .Net教程 > 正文

分享125个基础的C#口试问答【C#.Net教程】,C#,面试问答

作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:82评论:0


导读:下文是125个基础的C#口试问答清单。这些口试题目简朴、直接了当,涵盖了C#最基础的观点,大部份和面向对象的观点相干。所以假如你在预备C#口试,我发起你必需掌握这125个基础的C#...
下文是125个基础的C#口试问答清单。这些口试题目简朴、直接了当,涵盖了C#最基础的观点,大部份和面向对象的观点相干。所以假如你在预备C#口试,我发起你必需掌握这125个基础的C#口试问答来温习你的C#观点。那末如今来看看这125个基础的C#口试问答清单吧。

1. 什么是C#?

C#(发音”C sharp”)是一种简朴、有别于传统的、面向对象、范例平安的编程言语。C和C++递次员很快就会熟习它。C#中连系了高生产率的疾速运用开辟(RAD)言语。

2. C#的有哪些解释范例?

C#中有三种解释范例。
单行(//)
多行(/* */)
Page/XML 解释(///)。

3. C#.NET中运用的定名空间有哪些?

定名空间是范例的逻辑分组。
using System;
using System.Collections.Generic;
using System.Windows.Forms;

4. C#有哪些特征?

C#有以下特征:

简朴
范例平安
天真
面向对象
兼容
耐久化
互操纵性
有别于传统

5. 继续有哪些差别的种别?

在面向对象编程中继续的四种范例:

单继续:包括一个基类和一个派生类。

多层继续(Hierarchical inheritance) :包括一个基类和继续自同一个基类的派生类。

多级继续(Multilevel inheritance):包括从一个派生类派生出来的类。

多重继续(Multiple inheritance):包括多个基类和一个派生类。

6. 面向对象编程的基础观点是什么?

有必要明白一些在面向对象编程中普遍运用的观点。它们包括:

对象

数据笼统和封装
继续
多态性
动态绑定
信息通报。

7. 你可以继续多个接口吗?

可以的。在C#中可以继续多个接口。

8. 什么是继续?

继续是从一个已存在的类中派生出来的新类。

9. Define scope?定义作用域?

作用域指的是代码中一个变量可以被接见的地区。

10. public、static和void之间的区分是什么?

public:关键字public是接见润饰符,用来关照C#编译器主(Main)要领可以被任何人挪用。

static:关键字static表明主(Main)要领是一个全局要领,不须要穿件类实例即可接见。编译器贮存该要领的地点作为切入点,并应用这个信息在任何对象建立之前最先实行它。

void:关键字void是一个范例润饰符表明主(Main)要领不返回任何值。

11. C#中的润饰符有哪些?

Abstract
Sealed
Virtual
Const
Event
Extern
Override
Readonly
Static
New

12. C#中接见润饰符的品种有哪些?

C#中的接见润饰符是:

public
protect
private
internal
internal protect

13. 什么是装箱和拆箱?

变量值范例隐式转换为援用范例成为装箱,比方integer到object的范例转换。

援用范例变量转换回值范例成为拆箱。

14. 对象是什么?

对象是类的实例。对象的建立运用new操纵。一个类在内存中建立一个对象,将包括特定对象的值和行动(或许要领)的信息。

15. C#中有哪些范例的数组?

一维数组(Single-Dimensional)
多维数组(Multidimensional)
交织数组(Jagged arrays)。

16. 对象和实例之间的区分是什么?

用户定义的范例的实例称为一个对象。我们可以从一个类实例化很多对象。

对象是类的实例。

17. Define destructors?定义析构函数?

当类对象超越作用域或许被明白删除的时刻,析构函数被挪用。析构函数,望文生义是用来烧毁由构造函数建立的对象的。正如构造函数,析构函数是一个类成员要领,要领名和类名雷同,只是由波浪号开首。

18. 罗列数据范例怎样用?

罗列范例是另一种用户定义范例,它供应了一种衔接名字为数字的体式格局,从而提高了代码的可明白性。enum关键字自动地罗列一组词,赋予它们的值为0,1,2并以此类推。

19. 定义构造函数?

构造函数是和它的类同名的成员要领。每当建立其关联的类的对象时构造函数都会被挪用。它之所以被称为构造函数是由于它构造了类的数据成员的值。

20. 什么是封装?

包装数据和功用成为一个单位(称为类)就被称为封装。封装包括而且隐蔽对象信息,比方内部数据构造和代码。

21. C#支撑多重继续吗?

不支撑,它不可以。支撑多级继续。

22. 什么是ENUM?

Enum用于定义常量。

23. 数据集是什么?

数据集(DataSet)是从任何数据源载入数据的内存示意。

24. private和public关键字的区分是什么?

Private:关键字private是默许接见级别,而且在一切其他接见级别中是最严厉的。它赋予一个范例或许范例成员最小的权限。私有成员仅仅在声明其的类体中可以被接见。

Public:关键字public是一切接见级别中最自在地,没有任何接见限定。大众成员的接见不仅可以来自外部,也可以来自内部,而且可以自在接见定义在类体内或许体外的任何成员。

25. 定义多态性?

多态性意味着一个名字,多种形式。它使我们在一个递次中可以定义一个以上雷同名字的要领。它让我们重载操纵以便如许的操纵可以对差别的实例表现差别的行动。

26. 什么是交织数组?

交织数组是元素为数组的数组。

交织数组元素的维度和大小可以差别。

交织数组偶然称为“数组的数组”。

27. 什么是笼统基类?

笼统类是被设想为特地用于作为基类的类。笼统类最少另有一个纯虚要领。

28. 要领重写和要领重载有什么区分?

当重写一个要领时,你转变了派生类中要领的行动。重载要领只触及在类中另一个同名的要领。

29. ref和out参数之间的区分是什么?

通报给ref参数的参数必需先初始化。与此比拟,对out参数来讲,在参数通报给out参数之前不须要显现初始化。

30. C#中using语句怎样用?

using语句一般是猎取资本,实行语句,然后开释该资本。

31. 什么是序列化?

序列化(Serialization)是将对象转换为字撙节的历程。

反序列化(De-serialization)是从字撙节建立对象如许相反的历程。

序列化/反序列化常用于通报对象。

32. 构造和类之间有什么区分?

构造是值范例,类是援用范例。

构造不能有构造函数和析构函数。

类可以同时有构造函数和析构函数。

构造不支撑继续,而类支撑继续。

33. 类和接口之间有什么区分?

类(Class)是对象的逻辑示意。它是数据鸠合和相干子历程的定义。

接口(Interface)也是一个类,包括没有任何要领体定义的要领。类不支撑多重继续,然则接口支撑。

34. 什么是托付?

托付是范例平安,面向对象的函数指针的完成,而且在很多一个组件须要回调到运用它的组件如许的情况下运用。

35. 什么是认证与受权?

认证是辨认用户的历程。认证是以证书(用户名和暗码)来辨认/考证用户。

受权在认证以后实行。受权是一个基于这些用户身份授与接见权限的历程。

受权许可用户对特定资本的接见。

36. 什么是基类?

类声明可以经由过程类名加一个冒号和基类名来指定基类。省略基类申明等同于从object类派生。

37. “this”可以在静态要领顶用吗?

不,‘This’不能在静态要领中运用。仅仅只需静态变量/要领可以在静态要领中运用。

38. constants、readonly和static之间的区分是什么?

Constants: 值不能变。

Read-only: 值在类的构造函数中仅仅初始化一次。

Static: 值可以被初始化一次。

39. C#中支撑哪些语句范例?

C#支撑的几种差别的语句范例是

块语句
声明语句
表达式语句
挑选语句
迭代语句
跳转语句
异常处置惩罚语句
搜检和未搜检
Lock语句

40. 什么是接口类?

它是一个笼统类,一切大众笼统要领必须要在其继续类中完成。

41. 什么是值范例和援用范例?

值范例存储在客栈中。
比方: bool, byte, chat, decimal, double, enum, float, int, long, sbyte, short, strut, uint, ulong, ushort。

援用范例存储在托管堆中。
比方: class, delegate, interface, object, string。

42. 关键字string和System.String类之间有什么区分?

关键字string是System.String类的别号。所以,System.String和关键字string是一样的,你可以运用任何你喜好的定名商定。String类供应了很多要领用于平安建立,操纵和比较字符串。

43. C#中供应的两种数据范例是什么?

值范例
援用范例

44. 有哪些缓存的品种?

有三种范例的缓存:

输出缓存(Output Caching):存储asp.net页面的应对信息。

片断缓存(Fragment Caching):仅缓存/存储部份页面内容(用户掌握)。

数据缓存(Data Caching):为了机能经由过程编程的体式格局来缓存对象。

45. 自定义控件和用户控件之间的区分是什么?

自定义控件是编译后的代码(Dlls),轻易运用,建立难题,可以放在工具箱。拖沓运用的控件。

属机可以直观地在设想时指定。可以被多个运用递次运用(假如同享Dlls),即使是私有的也能拷贝到web运用递次的bin目次,增添援用和运用。一般是用来为自力的消耗运用递次供应公用功用。

用户控件和ASP的include文件,轻松建立,不能安排在箱中来拖沓安排它。用户控件在单个运用递次文件之间同享。

46. 什么是要领?

要领是由对象或许类实行来完成盘算或许操纵的成员。静态要领经由过程类接见。实例要领经由过程类的实例来接见。

47. 什么是域?

域是类或许类的实例相干的变量。

48. 什么是事宜?

事宜是使一个类或对象可以供应关照的成员。事宜声明像域声明一样,除了声明包括event关键字而且范例必需为托付范例。

49.什么是文本和它们的范例?

文本是递次分配给变量的值常量。C#支撑的几种文本范例是

整数(Integer literals)
实数(Real literals)
布尔值(Boolean literals)
单字符(Single character literals)
字符串(String literals)
反斜线(Backslash character literals)

50. 值范例和援用范例的区分是什么?

值范例存储在客栈上,是一个变量的值赋值给另一个变量。

援用范例存储在托管堆上,是两个援用变量之间的发作赋值。

51. C#有什么特征?

C#是一个简朴而壮大的编程言语,用于编写企业版的运用递次。
它是C++和VB的混合体。它保留了很多C++特征,如语句,表达式和运算符并连系了VB的生产力。

C#协助开辟者轻易地构建网络服务,可以经由过程任何言语,任何平台来接见Internet。

C#协助开辟者用更少的代码完成开辟,从而在代码中毛病更少。

C#引入了相当大的革新和立异,如范例平安,版本掌握,事宜和垃圾网络这些范畴。

52. 毛病的范例是什么?

语法毛病(Syntax error)
逻辑毛病(Logic error)
运转时毛病(Runtime error)

53. break和continue语句之间有什么区分?

break语句是用来住手当前关闭轮回或许它地点的前提语句的。我们已运用break语句跳出switch语句。

continue语句是用来转变实行递次的。和break语句那样跳出轮回相反,continue语句住手当前迭代而且只将掌握返回到轮回顶部。

54. 定义定名空间?

定名空间被称为容器,用来构造分层的.NET类。

55. 什么是代码组?

代码组是一组同享平安上下文的套件。

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

sealed润饰符用来阻挠从一个类派生。假如一个密封类被指定为另一个类的基类时会发作编译时毛病。

57. 静态要领和实例要领的区分是什么?

以static润饰符声明的要领是静态要领。静态要领不操纵细致的实例,而且只能被静态成员接见。

没有以static润饰符声明的要领是实例要领。实例要领操纵一个细致的实例而且可以被静态和实例成员接见。在其上挪用实例要领的实例可以像如许显现接见。在静态要领中这么挪用是毛病的。

58. C#中有哪些变量的范例?

C#中差别的变量范例是:

静态变量(static variables)
实例变量(instance variable)
值参数(value parameters)
援用参数(reference parameters)
数组元素(array elements)
输出参数(output parameters)
局部变量(local variables)

59. 要领重载是什么意义?

要领重载许可在同一个类中的多个要领有雷同的名字,只需它们具有奇特的署名。当编译一个重载要领的挪用时,编译器运用重载决议计划决议细致挪用的要领。

60. 什么是参数?

参数是用来通报值或许变量援用给要领的。要领的参数从被挪用要领时指定的参数获得它们现实的值。有四种参数:值参数,援用参数,输出参数和参数数组。

61. C#是面向对象的言语吗?

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

62. Array和Arraylist之间的区分是什么?

数组是雷同范例的鸠合。数组大小在它声明的时刻就牢固了。链表和数组类似,但它没有牢固的大小。

63. C#中有什么特别的运算符?

C#支撑一下特别运算符。

is (关联运算符)
as (关联运算符)
typeof (范例运算符)
sizeof (大小运算符,用于猎取非托管类的大小)
new (对象运算符)
.dot (成员接见运算符)
checked (溢出搜检)
unchecked?(防备溢出搜检)

64. C#中运算符的寄义是什么?

运算符是界定了对类实例运用特定的运算表达式内在的成员。可以定义三种范例的运算符:一元运算符,二元运算符和转换运算符。一切的运算符必需声明为public和static的。

65. 什么是范例参数化?

范例参数化是一个范例在另一个值或许范例之上参数化。

66. 笼统类的特征是什么?

笼统类不能被气力化,在笼统类上运用new操纵符是毛病的。

笼统类许可(但不必要)包括笼统要领和进口。

笼统类不能用scaled润饰符。

67. abstract关键字怎样用?

润饰符abstract是用于类的关键字,以表明这个类自身不能直接有实例或许对象,而且关于其他类来讲它只能是一个“基类”。

68. goto语句怎样用?

goto语句依然包括在C#言语中。这个goto可以用来从一个轮回内部跳转到外部。然则从轮回外部跳入轮回内是不许可的。

69. 掌握台运用递次和窗口运用递次有什么区分?

掌握台运用递次,设想用来在没有用户界面的敕令行中运转。
窗口运用递次,设想用来经由过程用户界面在用户桌面实行。

70. return语句怎样用?

return语句与递次 (要领或许函数)相干。在实行return语句的时刻,体系将掌握权从被挪用递次交给挪用递次。return语句用于两种目标:

马上返回当前实行的代码的挪用者

返回给当前实行的代码的挪用者一些值。

71. Array和LinkedList之间的区分是什么?

数组是不关心相互元素位置的简朴数字序列。他们之间的位置相互自力。增添,删除或许修正任何数组元素都是异常轻易的。相关于数组,链表是一个庞杂的数字序列。

72. C#有throws子句吗?

不,不像Java,C#不须要开辟者指定要领可以抛出的异常。

73. C#支撑可变数量标参数吗?

是的,运用params关键字。该参数指定为特定范例的参数列表。

74. 可以重写私有虚要领吗?

不可以,私有要领不能在类外接见。

75. 什么是多播托付?

每一个托付对象坚持对一个零丁要领的援用。然则,一个托付对象坚持对多个要领的援用并挪用它们是可以的。如许的托付对象成为多播托付或许组合托付。

76. 什么是C#独占的特征?

XML文档.

77. 在C#中运用异常是引荐的吗?

是的,在.NET框架中异常是引荐的毛病处置惩罚机制。

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

break语句闭幕它地点的轮回。它也转变了递次实行的流程。

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

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

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

80. 什么是智能导航?

由于服务端考证和页面被革新致使页面革新时,光标位置坚持稳定。

81. CONST和READONLY的区分是什么?

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

82. C#有throws子句吗?

不,不像Java,C#不须要(以至不许可)开辟者指定要领可以抛出的异常。

83. 要领可以重载的差别体式格局是什么?

差别的参数范例,差别的参数个数,差别的参数递次。

84. 事宜有返回值吗?

没有,事宜没有返回范例。

85. 事宜是什么?

事宜是一个基于另一个递次要领实行的行动。

事宜是被对象或许类运用来关照其他对象发作的事宜的托付范例类成员。

事宜可以经由过程event关键字来声明。

86. 什么是标识符?

标识符无他,它是用来在递次中唯一辨认种种实体的称号。

87. C#中有哪些差别的文本范例?

布尔值: True和False是Boolean范例,离别映射到真和假的状况。

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

实数:用于编写范例float, double和decimal的值。

字符:代表单字符,一般由有引号的字符构成,如‘a’。

字符串: C#支撑两种范例的字符串,划定规矩字符串和原义字符串。划定规矩字符串由0个或多个括在双引号中的字符构成,如“116110″。原义字符串由@字符后跟带双引号的字符构成,如@”hello”。

Null: 代表null范例。

88. 什么是数据封装?

数据封装,也被称为数据隐蔽,它是类的完成细节对坚持对用户藏匿的机制。用户只能经由过程实行称为要领的特别函数来对隐蔽了成员的类实行一组有限的操纵。

89. 可以重写私有虚要领吗?

不可以,私有要领不能在类外接见。

90. 子递次和函数的重要区分是什么?

子递次没有返回值,而函数有。

91. C#和C++的区分是什么?

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

C#中,类定义在末了不运用分号。

C#不支撑多重继续。

数据范例的显现转换在C#中比C++中平安很多。

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

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

92. 什么是嵌套类?

嵌套类是类中的类。

嵌套类是声明发作在另一个类或许接口内里的任何类。

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

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

94. C#中,字符串是值范例照样援用范例?

字符串是对象(援用范例)。

95. C#供应拷贝构造函数吗?

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

96. 类或许构造可以有多个构造函数吗?

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

97. 可以建立接口的实例吗?

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

98. 接口可以包括字段吗?

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

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

是的,类可以有静态构造函数。静态构造函数在任何静态字段被接见之前被马上自动挪用,而且一般用来初始化静态类成员。它在第一个实例被建立或许任何静态成员被援用之前自动挪用。静态构造函数在实例构造函数之前挪用。一个例子以下所示。

100. C#中托付的重要作用是什么?

托付重要用于定义回调要领。

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

重写仅仅重定义完成而投影重定义全部元素。

重写派生类可以经由过程“ME”关键字援用父类元素,但投影中你可以经由过程”MYBASE”接见父类元素。

102. 事宜可以用接见润饰符吗?

可以,你可以在事宜顶用接见润饰符。你可以对事宜运用portected关键字,如许只许可继续类接见。你可以运用private润饰事宜,仅可以供当前类对象接见。

103. 为何在代码顶用virtual关键字?

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

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

构造函数和析构函数是特别的要领。

构造函数和析构函数是每一个类的特别要领。

每一个类都有本身的构造函数和析构函数,而且在类实例被建立或许烧毁时自动挪用。

每当你接见类的时刻,构造函数就初始化一切类成员。当对象不想再须要的时刻,析构函数就烧毁它们。

105. 我们怎样抑止finalize要领?

GC.SuppressFinalize()。

106. C#支撑可变数量标参数吗?

是的,运用params关键字。

该参数指定为特定范例的参数列表,比方,int。为了最大的天真性,范例可所以object。

运用这类要领的规范例子是System.console.writeLine()。

107. 哪一个要领用来启动一个线程?
Start。

108. 什么是泛型?

泛型协助我们建立天真的强范例鸠合。

泛型基础上从数据范例中分离了逻辑,以坚持更好的可重用性,更好的可维护性等等。

109. 有哪些差别品种的多态性?

有两种范例的多态,它们是:

编译时多态性

运转时多态性

110. 编译时多态性和运转时多态性的区分是什么?

编译时多态性

编译时多态性也被称为要领重载。

要领重载是指有两个或更多同名但含有差别署名的要领。

运转时多态性

运转时多态性也被称为要领重写。

要领重写是指有两个或更多的同名要领,含有雷同的要领署名但对应差别的完成。

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

System.Threading。

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

不可以,由于C#不支撑静态块,但它支撑静态要领。

113. 要领可以声明为密封(sealed)吗?

在C#中要领不可以声明为sealed。但当我们在派生类重写一个要领的时刻,我们可以将重写的要领定义为sealed。经由过程其sealed,我们就可以防止对该要领的进一步重写。

114. 在C#顶用什么敕令来完成属性?

C#顶用get和set润饰符来完成属性。

115. 什么是静态成员?

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

116. C#中继续一个类的语法是什么?

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

在接见基类的成员所运用的接见润饰符指定了派生类中的基类成员的接见状况。

C#中从另一个类继续类的语法以下:

class MyNewClass : MyBaseClass

117. C#中while轮回和do while轮回的基础区分是什么?

while轮回在一最先测试它的前提,这意味着假如前提求值为真,关闭的语句块实行0或许更屡次。do while轮回最少遍历一次语句块然后在末了才搜检前提。

118. 子递次和函数的重要区分是什么?

子递次没有返回值,而函数有。

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

sealed润饰符用来阻挠从一个类派生。假如一个密封类被指定为另一个类的基类时会发作编译时毛病。

120.类和接口的区分是什么?

笼统类可以完成它的一些成员,但接口不能完成它的任何成员。

接口不能有字段,而笼统类可以有字段。

接口仅可以从另一个接口继续而且不能继续笼统类,而笼统类可以继续另一个笼统类或另一个接口。

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

笼统类的成员可以定义接见润饰符而接口成员不能定义接见润饰符。

121. 笼统要领和虚要领之间的区分是什么?

笼统要领不供应完成,而且强迫派生类重写该要领(除非派生类也是个笼统类),而虚要领可以有完成而且在派生类中重写与否是可选的。因而虚要领可以完成并供应了派生类重写的挑选。笼统要领不能供应完成而且强迫派生类重写该要领。

122. 什么是静态要领?

只须要领不试图接见任何实例数据或许其他实例要领,那末声明它为静态的是可以的。

123. 什么是New润饰符?

new润饰符隐蔽了基类的成员。C#仅仅支撑署名的隐蔽。

124. C#中get和set属性的上风是什么?

get属性接见器用于返回属性值。

set属性接见器用来设置新的值。

125. const和readonly之间有什么区分?

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

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

const字段的值在设想时就盘算出来了,而readonly的值在运转时盘算。

以上就是 分享125个基础的C#口试问答的细致内容,更多请关注ki4网别的相干文章!

标签:C#面试问答


欢迎 发表评论: