1.C#中的垃圾回收机制?
GC
(1)、提高了软件开发的抽象度;
(2)、程序员可以将精力集中在实际的问题上而不用分心来管理内存的问题;
(3)、可以使模块的接口更加的清晰,减小模块间的偶合;
(4)、大大减少了内存人为管理不当所带来的Bug;
(5)、使内存管理更加高效。
2.什么是面向对象?
封装、继承、多态
3.什么是拆箱和装箱?
装箱就是值类型转换为object类型,拆箱相反:object类型转化为值类型
4.简述private、 protected、 internal 、public 修饰符的访问权限?
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
5.C#中的委托是什么?事件是不是一种委托
委托是引用类型的变量,他可以包含对方法的引用,当程序必须通过调用一个方法来执行某个操作,但在编译时不知道该方法是什么时,就可以使用委托。委托允许在程序运行时指定调用的方法,委托的特点是面向对象的,类型是安全的。委托和事件是C#的亮点优势。 事件是一种委托。
6.C#中重写和重载的区别?
重载就是在同一个类中,方法名相同,参数列表不同
重写就是子类重写父类的方法,在调用的时候,子类的方法会覆盖父类的方法,也就是会调用子类的方法
7..net的错误处理机制是什么?
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
8.线程和进程的区别?
进程是操作系统资源分配的基本单位, 而线程是任务调度和执行的基本单位
9.什么是wcf?什么是WebServices?
WCF 是一个分布式应用的开发框架,属于特定的技术,或者平台。既不是标准也不是规范。
WCF服务的公开是需要运行服务的宿主环境的,
webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。
10 . Public static const int a=1;这段代码错在哪里?
const不能被修饰为static ;因为定义为常量 (const )后就是静态的(static )。
11.在.net中不想让一个类被继承用哪个单车修饰?序列化一个类用哪个单词标记?
sealed
Serializable()
12.简述C#中类与接口的区别?
接口的方法只能声明不能定义;类可以
13.在C#中我们定义参数时经常会用到ref和out简述一下区别?
1).ref型传递变量前,变量必须初始化,否则编译器会报错,而out型则不需要初始化
2).ref型传递变量,数值可以传入方法中,而out型无法将数据传入方法中。换而言之,ref型有进有出,out型只出不进。
14.C# 中有几种循环?分别用在什么场合?
do while:不管符不符合条件都会运行一次,在运行一次在之后再进行判断是否符合条件。
while:首先判断是否符合条件在进行运行。
for和while的意思差不多只是表达形式不同;一般需要定义局部性控制循环的的变量使用。
foreach:只能对数据进行读;在其作用域内不能对进行遍历的值做修改,其遍历顺序只能递增而且其控制循环变量是默认的只能++
15.随便写出一个json格式串?
{"username":"zhangsan","age":28,"password":"123","addr":"北京"}
16.C#实现代码编程题:定义一个int数组,长度为100,并向其中随机插入1-100的数字,保证不重复?
int[] array = new int[100];
Console.Write("请输入一百个数字:");
Console.WriteLine();
for (int i = 0; i <= 100; i++)
{
array[i] = Convert.ToInt32(Console.ReadLine());
foreach (int arr in array)
{
for (int j = 1; j < 100; j++)
{
array[j] = Convert.ToInt32(Console.ReadLine());
if (array[i].ToString() == array[j].ToString())
{
Console.Write("对不起不能输入重复的数字,请重新输入");
Console.WriteLine();
break;
}
}
}
}
17.C#实现代码编程题:编写一个冒泡排序的方法,参数传入一个int数组?
int temp = 0;
int[] arr = {23, 44, 66, 76, 98, 11, 3, 9, 7};
for (int i = 0; i < arr.Length - 1; i++)
{
for (int j = 0; j < arr.Length - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
Console.WriteLine("排序后的数组:");
foreach (int item in arr)
{
Console.Write(item+"");
}
Console.WriteLine();
18.谈谈你对remoting和webservice两项技术的理解?
remoting是.net 中用来跨越machine, process, appdomain 进行方法调用的技术
Web Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施
19.C#代码编程题:1 1 2 3 5 8 13 21 34 55 用递归算法编写一个方法,传入n 第几位,得出第几位上的数值?
3
20.C#实现代码编程题:1-2+3-4+……+m(m为奇数) 输出结果?
m(1+m)/2