1、.NET框架是什么
.NET框架是Microsoft的软件开发框架。它提供了一个受控的编程环境,可以在基于Windows的操作系统上开发,安装和执行软件。

2、.NET和C#的区别
.NET是一种框架,CLR公共语言运行库是.NET FrameWork的基础,其他语言是在.NET框架上运行的。
C# 一种编程语言,一般可以通过.NET框架编译成IL中间语言,在电脑上执行程序。

3、面向对象是什么
面向对象是指将数据和基于数据的操作方法封装到一起作为一个相互依赖的整体,面向对象是把问题分解成多个对象,强调的是解决问题的行为表现。

4、面向对象的主要思想包括什么?
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
继承:子类拥有父类的所有数据和操作
多态:一个程序中同名的不同方法共存的情况。有两种形式的多态-重载与重写。

5、C#中的接口和类有什么异同?
接口是负责功能的定义,而类是负责功能的具体实现。
一个类只可以继承一个父类,但可以继承多个接口。

6、抽象类和接口有什么区别?
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
接口是一个行为规范,里面的所有东西都是抽象的。

7、值类型和引用类型的区别?
基于值类型的变量直接包含值,将一个值类型变量赋值给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对象的引用,而不复制对象本身。
值类型有:int、float、double、bool、枚举、结构体等
引用类型有:string、object、class、接口、数组、委托等

8、什么是装箱和拆箱?
装箱是把值类型到引用类型的转换
拆箱是把引用类型到值类型的转换

9、简述private、protected、internal、public修饰符的访问权限
private:私有成员,在类的内部才可以访问。
protected:保护成员,该类内部和继承类中可以访问。
internal:在同一程序集内可以访问。
public:公共成员,完全公开,没有访问限制。

10、C#中的委托是什么?
委托是一种方法容器,里面都可以装载若干个方法引用地址,调用委托,就相当于同时调用了该容器内的所有方法。

11、委托和事件的区别?
委托可以将方法作为参数传递给方法,委托主要调用方法的。
事件基于委托,事件的本质是委托字段的包装器,对委托字段的访问其限制作用,事件隐藏了委托实例的大部分功能,仅暴漏添加和移除事件处理器的功能。事件是对象,委托是类型。

12、Override与重载的区别?
Override是子类对父类的方法进行重写。
重载是方法的名称相同,参数或参数类型不同。

13、线程和进程的区别?
进程是资源的分配和调度的独立单元,而线程是CPU调度的基本单元。
同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少包括一个线程。

14、WCF是什么?
WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架。

15、webService是什么?
WebService就是web服务,是微软主推的一种跨平台的分布式应用程序。他使用SOAP协议通讯,用XML封装数据。优点:1.可复用的Web应用程序组件。2.与平台无关,发布后可以被不同平台调用。3.使用XML格式的纯文本来描述自己如何使用。缺点:1.服务端接口方为WebService则客户端也必须使用WebService。2.因为WebService使用xml传输数据,因此性能上不能满足高并发。

16、.NET的错误处理机制是什么?
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的catch为止。

17、多线程的创建、启动?
多线程一般使用new thread()方法进行创建一个线程,使用start方法进行启动一个线程。

18、sleep和wait的区别?
sleep是thread提供的一个静态的方法,使当前线程暂时睡眠,指定休眠时间到了之后就会恢复运行。
wait是会释放对象锁,让其他线程可以访问,需要唤醒才能被执行。

19、请叙述const与readonly的区别。
readonly关键字和const关键字不同:const字段只能在该字段的声明中初始化。readonly字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly可能具有不同的值。

20、请描述一下ref和out在方法参数传递上的异同点?
ref传入的参数必须先被初始化,out则不需要,out必须在方法中对其完成初始化。
out更适合用在要返回多个返回值的地方,ref则要用在要被调出使用的方法修改调出使用者的引用的时候。

21、请指出.NET中所有类型的基类
所有类型的基类:object

22、请列出C#中几种循环的方法,并指出他们的不同
for:带有索引的集合,主要用于循环次数固定的循环。
foreach:用于列举出集合中所有的元素。
while:条件成立循环,通常用于不确定的循环次数。
do...while:与while类似,不同之处在于保证了循环至少执行一次。

23、C#中using和new这两个关键字有什么意义?
using引入一个命名空间,或在使用了一个对象后自动调用其IDespose,New实例化一个对象,或修饰一个方法,表示此方法显示隐藏父类的同名方法。

24、C#中,string str=null与string=""有什么区别?
string str=null是不分配内存空间,而string str=""给它分配了长度为空字符串的内存空间。

25、反射是什么?
程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集模块和类型的对象。可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。

26、序列化和反序列化是什么?
序列化是将对象转换为容易传输的格式的过程
反序列化是把接收的文件的格式转化成原来的对象

27、什么是XML,能用来做什么
xml一般指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

28、TCP和UDP的区别?
TCP使用前需要先建立连接,UDP不需要建立连接
TCP对系统资源的要求较多,UDP对系统资源的要求较少
TCP保证数据正确性,UDP可能会丢包
TCP保证数据顺序,UDP不保证

29、堆和栈的区别
堆是有程序员手动分配释放,栈是程序自动分配并释放。

30、虚函数和抽象函数
虚函数是由没有实现的函数,由其子类继承并重写的函数
抽象函数是必须由其非虚子类继承并重写的函数

31、==和equals的区别?
==是运算符,equals是Object类的方法
比较的类型不同:equals比较两个对象的内容是否相同。==用于比较引用和比较基本数据类型时具有不同的功能,比较引用类型时比较的是地址值,比较基础数据类型只能用"=="比较两个值是否相同。
运行的速度不同:equals没有==运行速度快,因为==只比较引用。

32、String和StringBuilder的区别?
string创建后分配在栈区,大小不可修改,每次使用string类中的方法时,都要在内存中再创建一个新的字符串对象,然后指向新的对象。这样就需要再分配新的空间。所以有可能产生很大的开销。
StringBuilder创建后分配在堆区,大小可自由修改。

33、C#中常见的数据结构及使用情景
一、数组(Array):需要处理的元素数量确定并且需要使用下标进行访问时可以考虑,不过建议使用List<T>。
二、动态数组(ArrayList):不推荐使用,建议使用泛型List<T>。
三、泛型List:需要处理的元素数量不确定时,通常建议使用。
四、双向链表(LinkedList):链表适合元素数量不固定,而且需要经常增减节点的情况,链表增减元素效率高。
五、堆栈(Stack):堆栈适合于先进后出的情况。
六、链表Queue:队列适合于先进先出的情况。
七、字典(Dictionary):字典适合于需要键值对操作的情况。

34、常用的设计模式有哪些?
单例模式:一个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例.
单例模式又包括饿汉模式和懒汉模式
饿汉模式:每次调用的时候都会直接加载
懒汉模式:使用的时候才加载
工厂模式:定义规范接口,由其子类进行功能的实现
建造者模式:将复杂的功能分割,重建后实现不同的功能.

程序猿 C#常规面试题相关推荐

  1. 程序猿 MVC常规面试题

    1.阐述下MVC框架的机制,是如何工作的? M-模型,MVC需要提供的数据源,负责数据的访问和维护. V-视图,用于显示模型中数据的用户界面. C-控制器,用来处理用户的输入,负责改变模型的状态并选择 ...

  2. 各大IT公司校园招聘程序猿笔试、面试题集锦

    百度一面 1.给定一个字符串比如"abcdef",要求写个函数变成"defabc",位数是可变的. 别人的方法:这个比较简单,我用的是strcpy和memcpy ...

  3. [面试] 各大IT公司校园招聘程序猿笔试、面试题集锦

    百度一面 1.给定一个字符串比如"abcdef",要求写个函数编程"defabc",位数是可变的.这个比较简单,我用的是strcpy和memcpy,然后他问有什 ...

  4. Java程序猿面试题集(181- 199)

    Java面试题集(181-199) 摘要:这部分是包括了Java高级玩法的一些专题,对面试者和新入职的Java程序猿相信都会有帮助的. 181.  182. 183. 184. 185. 186. 1 ...

  5. JAVA程序猿面试题汇总

    (此话题将不断更新,请留意) 第一,谈谈final, finally, finalize的差别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常 ...

  6. 《重学 Java 面试题》PDF 出炉了 - 退休的程序猿,肝了30天写出15万字241页的实战编程资料

    一.前言 我膨胀了 ,在编写完上一本PDF<字节码编程>被下载了2000份以后,蠢蠢欲动开始计划第二本.于是从 5月20日那天投身实战型设计模式打磨,通过模拟互联网业务开发实际需求作为学习 ...

  7. 当周杰伦把QQ音乐干翻的时候,作为程序猿我看到了什么?

    点击蓝字关注我吧 1 别人都会唱了,而我还没付钱! 2019年9月16日晚23点整,周杰伦发布新歌<说好不哭>. 我经过一系列猛如虎的操作: 咦!这啥? 发生错误了?what the fu ...

  8. 过年回家应对七大姑八大姨,程序猿绝了!

    转眼又到年关,所谓年关,也就是不断地过关坎.七大姑八大姨又要免不了地问各种问题轮番"进攻".这是每年过年离不开的烦恼! 挣多少钱啊? 有对象了没啊? 啥时候结婚啊? 啥时候买房买车 ...

  9. 【强烈推荐】程序猿们,九度Online Judge开始举办月赛啦!!会编程才是王道!!!!!

    程序猿们,九度Online Judge开始举办月赛啦!!会编程才是王道!! 在国内计算机考研中,已经有越来越多的高校采用ACM上机考试的形式,在复试中来考察考生的实际动手编程能力,并且机试在复试中所占 ...

最新文章

  1. vb.net与matlab的混合编程
  2. php ob静态缓存
  3. python应用于期货_Python期货量化交易基础教程(17)
  4. 最优化理论与方法(part8)--凸集的分离和支撑
  5. win7 桌面右下角音量图标消失的解决办法 参考
  6. 【专题】多角度深入解析开放原子开源基金会
  7. HDU 3695 Computer Virus on Planet Pandora (AC自己主动机)
  8. Xcode 7 3打包注意事项
  9. 网络切片技术缺点_5G中网络切片研究的现状与挑战
  10. 加入收藏和设为首页JQuery代码
  11. linux伊甸园,新手学堂:给Ubuntu系统配置Java开发环境-Linux伊甸园----Linux|Unix|新闻|下载|论坛|人才|教程|自由软件|...
  12. Cocos2d-x制作《单机斗地主》源码解剖5:玩家的出牌
  13. 陕西副市长猝死,其“豪宅”爆光震惊国人
  14. 「笔耕不辍」zookeeper集群之间如何通讯
  15. html class生效顺序,HTML5 CSS3小猪日历(动物挂历)
  16. 公安专网与视频专网内使用离线互联网百度高德地图
  17. 华为发布业界首款5G基站芯片:天罡
  18. 第063讲: 论一只爬虫的自我修养11:Scrapy框架之初窥门径 | 学习记录(小甲鱼零基础入门学习Python)
  19. 【雷达图像】SAR合成孔径雷达成像及处理含Matlab源码
  20. 关于branch XYZ is published (but not merged) and is now N commits behind错误的一点分析

热门文章

  1. 【机器视觉案例】(15) 虚拟答题板,手部关键点识别,附python完整代码
  2. Android 自定义View中坐标点的理解学习(一)
  3. HKC泄密!HKCQQ照提前传出!
  4. Tcl -- variable
  5. 关于优先队列在图中的应用G - Millionaire Madness Kattis - millionairemadness
  6. 计算机关闭为什么自己重启,电脑关机后自动重启怎么回事
  7. 拼了(求婚事务所电视原声带)铃声 拼了(求婚事务所电视原声带)...
  8. 盘点国内11家已经获得融资的移动CRM平台
  9. AIoT,构建更佳边缘AI能力
  10. 商业计划书中该如何做产品介绍?