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) 可以使用委托进行异步调用吗?
1、回调机制 Callback Mechanism
2、异步处理 Asynchronous Processing
3、抽象和封装方法 Abstract and Encapsulate method
4、多播 Multicasting
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”将引用类型转换为值类型。
号外:装箱拆箱的过程会造成性能损失。
部分类允许同一个类的代码文件分散在多个文件中。使用“partial” 关键字。
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的主要内容,如果未能解决你的问题,请参考以下文章
java面试题及答案2020 java最新面试题及答案2020 一