面试题整理:C#(二)
1.类,接口的区别
从定义的角度
类描述一个实体,包括状态、属性和动作
接口定义一类动作,没有实现,也没有状态信息
从程序的角度
接口是函数声明;类是函数实现
接口可以有属性,不能有字段
一个子类只能继承一个父类,但是可以继承多个接口
2.接口和抽象类的区别
抽象类是一类事物的高度聚合,接口是定义行为的规范
抽象类定义方法时,可以有实现,也可以没有
接口中定义的方法,不能有实现
抽象类子类可以不重写抽象方法,继承接口的类必须有方法和属性的实现
3.抽象方法和虚方法的区别
抽象方法使用abstract关键字,虚方法是用virtual关键字
抽象方法必须被派生类重写,虚方法可以不重写
抽象方法可以看作没有实现的虚方法
类包含抽象方法,必须被定义为抽象类
4.Equal()、ReferenceEqual()、== 的区别
对于引用类型
Equal是比较引用的值是否相等
ReferenceEqual比较是否是同一个引用
Object a=new Object();
Object b=a;
Object c=new Object();
Object d=new Object();
c=(object)100;
d=(object)100;
System.Object.Equals(a, b); //return true
System.Object.ReferenceEquals(a, b); //return true
System.Object.Equals(c, d); //return true
System.Object.ReferenceEquals(c, d); //return false
对于值类型,如果操作数的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于 string 以外的引用类型,如果两个操作数引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。
5.进程和线程的区别
线程时CPU调度和分配的单位,进程内可以有多个线程,共享进程资源
6.使用Operator的注意事项
需要提供public static修饰符;
需要有返回值;参数类型可以不同;==和!=必须成对出现
7.Task和ThreadPool的区别
ThreadPool不支持线程的取消,完成、失败通知等交互
ThreadPool不支持线程执行的顺序
Task有属性,可以查询任务完成时的状态(IsCanceled\IsCompleted\IsFaulted)
Task没有提供回调时间通知,通过启动一个新任务的方式完成类似的功能。
ContinueWith可以在一个Task完成时发起一个新的任务,支持了任务的完成通知,可以在新任务中获取旧任务的结果
ThreadPool可以节省创建销毁线程消耗的时间,减少内存浪费,和性能损失
8.Sealed关键字的作用
被Sealed类修饰的类和方法不能被继承和重写
9.能用foreach遍历访问的对象需要实现什么接口或者声明什么方法
不一定要实现IEnumerable接口,一定要实现GetEnumerator方法
10.构造函数是否可以被Override
不可以,构造器不能被继承,不能被Override,可以被Overload
TO BE CONTINUE...
面试题整理:C#(二)的更多相关文章
- Touch事件or手机卫士面试题整理回答(二)
Touch事件or手机卫士面试题整理回答(二) 自定义控件 1. Touch事件的传递机制 顶级View->父View->子View,不处理逆向返回 OnInterceptTouchEve ...
- 【IT笔试面试题整理】二叉搜索树转换为双向链表
[试题描述] 将二叉搜索树转换为双向链表 对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点. 思路一: 采用递归思想,对于二叉搜索 ...
- python面试题整理(二)
1.进程,线程,协程定义,有什么区别 进程是操作系统分配资源的最小单位,一个进程对应一块CPU 线程是进程中的某一个控制单元,是CPU调度的最小单元,线程之间相互独立,进程结束线程也会结束,一个进程至 ...
- iOS开发面试题整理(二)
8 类别的作用?继承和类别在实现中有何区别? 答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改. 并且如果类别和原来类中的方法产生名称冲突,则类别 ...
- php面试题整理(二)
索引,desc 和explain unset只是删除了变量名
- myBatis+Spring+SpringMVC框架面试题整理
myBatis+Spring+SpringMVC框架面试题整理(一) 2018年09月06日 13:36:01 新新许愿树 阅读数 14034更多 分类专栏: SSM 版权声明:本文为博主原创文章 ...
- iOS 面试题整理(带答案)二
第一篇面试题整理: http://www.cocoachina.com/bbs/read.php?tid-459620.html 本篇面试题同样:如答案有问题,欢迎指正! 1.回答person的ret ...
- 尚学堂Java面试题整理
博客分类: 经典分享 1. super()与this()的差别? - 6 - 2. 作用域public,protected,private,以及不写时的差别? - 6 - 3. 编程输出例如以 ...
- 北京Java笔试题整理
北京Java笔试题整理 1.什么是java虚拟机?为什么ava被称作是"平台无关的编程语言? 答:Java虚拟机可以理解为一个特殊的"操作系统",只是它连接的不是硬件,而 ...
- Java笔试面试题整理第八波
转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
随机推荐
- 编写CLR存储过程中使用SqlDataRecord
温习一下这些天学习的CLR编程,存储过程,函数. 编写CLR的存储过程,运行起来的效率,果然比普通的SQL语句,存储过程或是函数均高. 以后专案需求,或是执行效率较高的SQL,得写成CLR程序,再部署 ...
- 15天玩转redis —— 第三篇 无敌的列表类型
据说60%的人使用redis看重的是redis中的list类型,那这个list有什么用呢???不用我说大家都明白,做队列使用呗,为什么用它呢,很简单呗, 因为有了它我就不需要专门的MQ产品啦,比如说 ...
- html5学习笔记(2)
效果图 以下为源码 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- 用 Inkspace 做 SVG 给 TPath
FireMonkey 里的 TPathData 支持 SVG 的基本绘图指令,因此可以运用 Inkspace 软件,提取 SVG 的绘图内容,请见图片说明:
- Android中自定义ProgressBar
<ProgressBar android:id="@+id/more_vprogress_more" android:layo ...
- hhvm的正确安装姿势 http://dl.hhvm.com 镜像
hhvm是php的第三方运行环境,由facebook出品,基于该运行环境,它还提供了一种编程语言hack - PHP的静态类型版. 折腾了一天后,包括各种编译.配置.FQ,后面终于忍不住搜了一下 ht ...
- 11.20 CSS定位智博星网页制作
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu ...
- Java Selenium封装--RemoteWebElement
package com.liuke.selenium.driver; import java.sql.SQLException; import java.util.List; import org.j ...
- Android 手机卫士4--设置中心显示
1,自定义属性 SettingActivity.java package com.itheima.mobilesafe74.activity; import com.itheima.mobilesaf ...
- SQL Server数据类型转换
在SQL Server日常的函数.存储过程和SQL语句中,经常会用到不同数据类型的转换.在SQL Server有两种数据转换类型:一种是显性数据转换:另一种是隐性数据转换.下面分别对这两种数据类型转换 ...