C# 面试题及答案31-60

Posted kkx5211

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 面试题及答案31-60相关的知识,希望对你有一定的参考价值。

2018/8/4

c# 面试系列续

 31)  “System.Array.Clone()” 和 “System.Array.CopyTo()” 有何不同?

  1、“CopyTo()” 从一个数组复制元素到另一个数组中去。

  2、“Clone()” 创建一个新数组,包含源数组的所有元素。

32) 可以循环引用吗?

  不可以循环引用。这种情况下,循环引用导致锁形成的条件,造成资源不可用。

33) C#中有哪些常见异常?

  1、NullReferenceException

  2、ArgumentNullException

  3、DivideByZeroException

  4、IndexOutOfRangeException

  5、InvalidOperationException

  6、StackOverflowException 

34) 什么是泛型?

  泛型允许灵活的创建类型,处理一种或者多种类型状态。有以下优势:使代码复用,源代码保护,类型安全,更清晰的代码,更佳的性能。 

35) 什么是对象池?

  对象池用于跟踪代码中使用的对象,对象池能减少对象的创建开销。同理还存在:字符串池、线程池、数据库连接池等。 

36) 什么是委托?

  将函数作为参数传递给方法。委托是类型安全的,允许顺序调用多个方法,支持调用静态方法和实例方法。

37) 委托类型有哪些?

  1、单委托 Single Delegate

  2、委托链 Multicast Delegate

  3、泛型委托 Generic Delegate

38) 泛型委托有哪三种类型?

  1、Func 目前.NET Framework提供了17个

  2、Action 目前.NET Framework提供了17个

  3、Predicate 

  号外:事实上,仅仅在MSCorLib.dll中,就有接近50个委托类型

39)  events 和 elegates 有何不同?

  事件是一种特殊的委托。主要不同是事件提供一个对代理的封装。 

40) 可以使用委托进行异步调用吗?

  可以。
41) C#中委托的代表有哪些?

  1、回调机制 Callback Mechanism

  2、异步处理 Asynchronous Processing

  3、抽象和封装方法 Abstract and Encapsulate method

  4、多播 Multicasting

42) 什么是可空类型?
  
  可以将值类型表示为null。 <值类型变量永远不会为null,它总是包含值类型本身的值> 例如数据库字段映射到c#类型时,数据库字段可以允许为空。
  号外:int? value=null;
 
43) 什么是空接合操作符< Nullable Coalescing Operator>“??”  ?
  
  “??”操作符获取两个操作数。假设坐标操作数不为空,就返回这个操作数,否则就返回右边的操作数。

44) “as” 和 “is” 操作符有何不同?

  1、“as” 核实是否兼容某种类型,兼容则返回同一对象的非null引用,否则返回null。

  2、“is” 用于检查对象类型是否兼容于指定类型。 不会抛出异常。

45)  C# 代码是托管代码还是非托管代码?

  C# 代码是托管代码。编译器将代码编译成中间语言。

46) “lock” 语法的作用?

  “lock”确保线程之间独享一段资源,会使线程等待,知道该资源被释放。常用于多线程编程,共享资源或者独占资源会降低应用程序效率。 

47) 什么是 Hashtable ?

  用于键值对存储,键是唯一。使用键访问集合中元素。It is used to store the key/value pairs based on hash code of the key. Key will be used to access the element in the collection. For example,

48) 什么是枚举?

  “enum”关键字用于声明枚举,枚举有常量组成,有枚举器调用。枚举是值类型,不能继承。

49)  “continue” 和 “break” 有何不同?

  1、“continue” 用于跳过当前循环,进入下一次循环。 

  2、“break”用于跳出循环体。  

50) 什么是 boxing和unboxing?

  1、“boxing” 将值类型转换为引用类型。 

  2、“unboxing”将引用类型转换为值类型。 

  号外:装箱拆箱的过程会造成性能损失。

51) 什么是部分类<partial class>?

  部分类允许同一个类的代码文件分散在多个文件中。使用“partial” 关键字。 

52) 什么是匿名类型<Anonymous type>?
 
  c# 3.0 加入的新特性。允许在编译时创建对象。 号外:其实是编译器帮我们创建了一些工作,属于语法糖的一种具体体现形式。
 
53) c#编译器名字是? 

   CSC

54) C#中集合类型有哪些?

  1、ArrayList

  2、Stack

  3、Queue

  4、SortedList

  5、HashTable

  6、Bit Array

55) 什么是线程?

  进程是程序的一次执行,一个进程包含一个或者多个线程,线程是调度和资源分配的基本单位。一个线程有三种状态,阻塞、运行、就绪。

56) 列举Thread class的属性和方法?

  CurrentCulture、CurrentThread、CurrentContext、IsAlive、IsThreadPoolThread、IsBackground、Priority

57)  Access Modifiers 有哪些?

  1、public 任何地方可以访问

  2、private 类自己能访问

  3、protected 类和子类能访问

  4、 internal 当前项目集可访问

  5、protected internal 当前项目集下的类和子类

58) 什么是数据封装<data Encapsulation> ?

  给最终客户端隐藏重要字段的过程。 

59) C# 可以多继承吗?

  一个类只能继承一个父类,可以继承多个接口。 

60) 什么是多态<polymorphism> ?

  编程语言根据不同的数据类型以不同的方式处理对象的能力称之为多态。例如:编译时多态 重载<Overloading>;运行时多态重写<Overriding>。 

 

至今不敢妄言精通c#,c#某些高级特性还不是特别了解。继续。。。

 

以上是关于C# 面试题及答案31-60的主要内容,如果未能解决你的问题,请参考以下文章

C#经典面试题及答案

linux认证的面试题及答案

android面试题及答案

java面试题及答案2020 java最新面试题及答案2020 一

java面试题及答案2020 java最新面试题及答案2020 一

SpringCloud面试题及答案 300道,springcloud面试题总结 (持续更新)