1, 请你说说.NET中类和结构的区别?

答:结构和类具有大体的语法,但是结构受到的限制比类要多。

结构不能申明有默认的构造函数,为结构的副本是又编译器创建和销毁的,所以不需要默认的构造函数和析构函数。

结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是应用类型,改变其变量的值会改变其原值。

申明结构用Struck关键字,申明类用class关键字,向方法传递结构是时是通过值传递的,而不是通过引用。

与类不同,结构的实例化可以不使用New关键字。类可以实现接口。

2, 死锁的必要条件?怎么克服?

答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,

一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。

3, 接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?

答:接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实体类,

但是有个条件,条件是,实体类必须要有明确的构造函数

4, 构造器Constructor是否可以被继承?是否可以被Override?

答:Constructor不可以被继承,因此不能被重写(Overriding),但可以被重载(Overloading).

5、谈谈final,finally,finallize的区别?

答:final用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖,类不可以被继承。

Finally是异常处理语句结构中,表示总是执行的部分。

Finallize表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法。

6、New有种用法?

答:有3种,第一种是,实例化如:New Class()

第二种是,public new 隐藏基类的方法

第三种是,在泛型类申明中的任何类型参数都必须有公共的无参构造函数。

7、Const和ReadOnly?

答:Const用来申明编程时申明常量,ReadOnly用来申明运行时常量

8、UDP和TCP连接有和异同?

答:TCP是传输控制协议,提供的是面向连接的,是可靠的,字节流服务,

当用户和服务器彼此进行数据交互的时候,必须在他们数据交互前要     进行TCP连接之后才能传输数据。

TCP提供超时重拨,检验数据功能。

UDP是用户数据报协议,是一个简单的面向数据报的传输协议,是不可靠的连接。

9、public,internal,private,protected,protected internal各个访问修饰符的区别?

public:任何地方都可以调用。

internal:同一应用程序集内均可调用(VS.NET的一个工程中)

protected:只能在类以及它的子类中调用。 private:只能在类成员调用。

protected internal:只能被同一应用程序集内类和它的子类调用。

10、out 和 ref的区别与相同点?

out 和 ref都指示编译器传递参数地址,在行为上是相同的;

他们的使用机制稍有不同,ref要求参数在使用之前要显式初始化,out要在方法内部初始化;

out 和 ref不可以重载,就是不能定义Method(ref int a)和Method(out int a)这样的重载,从编译角度看,二者的实质是相同的,只是使用时有区别;

11、接口和类有什么异同?

不同点:

1)、接口不能直接实例化。

2)、接口只包含方法或属性的声明,不包含方法的实现。

3)、接口可以多继承,类只能单继承。

4)、类有分部类的概念,定义可在不同的源文件之间进行拆分,而接口没有。(这个地方确实不对,接口也可以分部,谢谢@xclin163的指正)

5)、表达的含义不同,接口主要定义一种规范,统一调用方法,也就是规范类,约束类,类是方法功能的实现和集合

相同点:

1)、接口、类和结构都可以从多个接口继承。

2)、接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。

3)、接口和类都可以包含事件、索引器、方法和属性。

12、抽象类和接口有什么区别?

1)、继承:接口支持多继承;抽象类不能实现多继承。

2)、表达的概念:接口用于规范,更强调契约,抽象类用于共性,强调父子。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于"Is A"的关系;而接口是定义行为规范,强调“Can Do”的关系,因此对于实现接口的子类来说,相对于接口来说,是"行为需要按照接口来完成"。

3)、方法实现:对抽象类中的方法,即可以给出实现部分,也可以不给出;而接口的方法(抽象规则)都不能给出实现部分,接口中方法不能加修饰符。

4)、子类重写:继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须重写,给出相应的方法和属性实现。

5)、新增方法的影响:在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。

6)、接口可以作用于值类型(枚举可以实现接口)和引用类型;抽象类只能作用于引用类型。

7)、接口不能包含字段和已实现的方法,接口只包含方法、属性、索引器、事件的签名;抽象类可以定义字段、属性、包含有实现的方法。

13、重载与覆盖的区别?

重载:当类包含两个名称相同但签名不同(方法名相同,参数列表不相同)的方法时发生方法重载。用方法重载来提供在语义上完成相同而功能不同的方法。

覆写:在类的继承中使用,通过覆写子类方法可以改变父类虚方法的实现。

主要区别:

1)、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。

2)、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。

3)、覆盖要求参数列表相同;重载要求参数列表不同。

4)、覆盖关系中,调用那个方法体,是根据对象的类型来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。

C# 面试题 (四)的更多相关文章

  1. php面试题四

    php面试题四 一.总结 二.php面试题四 01. 输出为 Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:   A.$_S ...

  2. U3D面试题四

    1.配置Unity3D调试环境 在windows环境下,设置unity3d的编辑器调试环境方法: 点击“Edit‘---”Preferences“,弹出如下窗口 选择MonoDeveop即可. 在编辑 ...

  3. Java常考面试题(四)

    序言 双十一那天去我女朋友那了,11.11到11.13 漏了两天的内容,今天中午刚回来的,赶紧补一下前两天漏下的博文,我相信,坚持下来,会有成长的,等到出去实习那一天,肯定会很有帮助,会感谢现在自己的 ...

  4. 面试题:四种Java线程池用法解析 !=!=未看

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 1 2 3 4 5 6 7 8 new Thread(new Runnable() {     @Override ...

  5. CCF-NOIP-2018 提高组(复赛) 模拟试题(四)

    T1 贪吃蛇 [问题描述] 贪吃蛇是一个好玩的游戏.在本题中,你需要对这个游戏进行模拟. 这个游戏在一个 \(n\) 行 \(m\) 列的二维棋盘上进行. 我们用 \((x, y)\) 来表示第 \( ...

  6. python面试题四:Python web框架

    1 django.flask.tornado框架的比较? 2 什么是wsgi? WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口.具体的来说, ...

  7. 面试题四十:数组中最小的k个数

    方法一:先排序后寻找前k个数: 方法二:受面试题三十九,寻找超过一半的数的启发,只把里面的middle改成k-1就行: void HalfNum( int [ ] Array ,int k){ int ...

  8. 面试题四:手写sql

    矫正数据,有以下2个表,建表语句如下所示 -- 订单表 create table t_order ( id int auto_increment primary key, name varchar(2 ...

  9. 应聘.net开发工程师常见的面试题(四)

    1.在Asp.net中所有的自定义用户控件都必须继承自________? 答:Control. 2.在.Net中所有可序列化的类都被标记为_____? 答:[serializable] 3.在.Net ...

  10. python面试题(四)

    一.数据类型 1.字典 1.1 现有字典 dict={‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按字典中的 value 值进行排序? sorted(dict.items(),key=l ...

随机推荐

  1. 解决golang windows调试问题:Could not determine version number: could not find symbol value for runtime.buildVersion

    版本信息: go:1.8.3 windows: win7/64 idea-go-plugin:171.4694.61 在windows下,使用dlv进行调试的时候,如果golang程序引入了c模块,比 ...

  2. linux 虚拟机 安装 php-7.0.2

    1.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel libjpeg libjpeg-devel libpng libp ...

  3. 强制所有网页链接在同一页面打开或者在TabControl中弹出新窗口

    IEwebbrowser中老生常谈的话题. 一般的解决都是通过 // webBrowser.Navigating += WebBrowser_Navigating; 注册转跳前事件 private v ...

  4. IO相关2(文件输入输出)

    除了继承自 iostream 类型的行为之外,fstream 中定义的类型还增加了一些新的成员来管理与流相关的文件.我们可以对 fstream,ifstream 和 ofstream 对象调用这些操作 ...

  5. sass的基本语法与使用

    一.简介 SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护.以上都是百度的,哈哈: 其实个人认为sass就是一套提高编写css效率的规则 ...

  6. linux防火墙(四)—— SNET和DNET原理及应用

    图(1) 一.SNAT策略 应用环境:局域网主机共享单个公网IP地址接入Internet,简单的说就是企业内部局域网想访问外部服务器时,网关型防火墙需要开启的SNAT应用策略. SNAT策略原理:网关 ...

  7. 9.tab栏切换

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. scrapy 请求和响应

    scrapy Request类的一些参数意义 url: 就是需要请求,并进行下一步处理的url callback: 指定该请求返回的Response,由那个函数来处理. method: 一般不需要指定 ...

  9. 蠕虫Worm virus

    美国CORNELL大学研究生莫里斯编写的蠕虫病毒 蠕虫病毒是一种常见的计算机病毒.它是利用网络进行复制和传播,传染途径是通过网络和电子邮件.最初的蠕虫病毒定义是因为在DOS环境下,病毒发作时会在屏幕上 ...

  10. day44--浮动和清浮动基本小结

    浮动和清浮动 一:浮动 浮动元素会生成一个块级框,而不论它本身是何种元素. 关于浮动的两个特点: 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 由于浮动框不在文档的普 ...