1 / 15
文档名称:

net高级工程师面试题.docx

格式:docx   大小:828KB   页数:15页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

net高级工程师面试题.docx

上传人:春花秋实 2022/7/12 文件大小:828 KB

下载得到文件列表

net高级工程师面试题.docx

相关文档

文档介绍

文档介绍:Last revision date: 13 December 2020.
net高级工程师面试题
.net软件工程师面试题
基础题:
[]、ArrayList、List的区别。
数组产品角色
,以及如何提高UDP传输可靠性。
,.,.。
10.
const和readonly的区别
我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值。明白了这个本质区别,我们就不难看出下面的语句中static readonly和const能否互换了:
1. static readonly MyClass myins = new MyClass();
2. static readonly MyClass myins = null;
3. static readonly B = 10; static readonly A = B * 20;
4. static readonly int [] constIntArray = new int[] {1, 2, 3};
5. void SomeFunction()
{
const int a = 10;
...
}
static string astr="abcd";
private const string str = astr+"efg";
1:不可以换成const。new操作符是需要执行构造函数的,所以无法在编译期间确定
2:可以换成const。我们也看到,Reference类型的常量(除了String)只能是Null。
3:可以换成const。我们可以在编译期间很明确的说,A等于200。
4:不可以换成const。道理和1是一样的,虽然看起来1,2,3的数组的确就是一个常量。
5:不可以换成readonly,readonly只能用来修饰类的field,不能修饰局部变量,也不能修饰property等其他类成员。
:如果在astr前加上const或者const改为readonly即可;
总结:、readonly和static readonly定义的常量,指定初始值后(包括在构造函数内指定的初始值) 将不可更改,可读不可写;
,而readonly定义时可以不进行初始化(MS建议在定义时初始值),同时也可以在构造函数内指定初始值,
并以构造函数内指定的值为准;
readonly定义的常量是静态的,只能由类直接访问;而readonly定义的常量是非静态 的,只能由实例对象访问;
readonly常量,如果在构造函数内指定初始值,则必须是静态无参构造函数;
,readonly是运行时常量;cosnt较高效,readonly较灵活。在应用上以static readonly代替const,以平衡const在灵活性上的不足,同时克服编译器优化cosnt性能,所带来的程序集引用不一致问题;
算法题:(以下三题不用作答,想好思路面试谈即可)
1. 一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。
请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。
注意:
- 5个数值允许是乱序的。比如: 8 7 5 0 6
- 0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4
- 0可以多次出现。
- 复杂度如果是O(n2)则不得分。
解题思路:
,之差不大于4则连续,否则不连续。
: 1)全0 算连续,2)只有一个非0算连续
代码实例
[java]
<span?style="font-size:14px;"><span?style="font-family:Microsoft?YaHei;font-size:12px;color:#333333;"><span?style="font-size:12px;">#include<iostream>?
#include<>?