1,事件是对象,委托时类型。事件内部其实就是一个private 的委托和add,remove两个方法。

2.override 和overload的区别: override是对基类中方法的重写,是会覆盖的,是面向对象的概念。而overload是因为函数名称相同,参数或类型不同,是面向过程的概念。

3.索引器

4.属性和pulic字段的不同:属性可以对设置属性时做非法值判断,就是可以卡一些条件。

5.三层架构:

  目的:高内聚、低耦合。上层代码必须在下层代码提供接口后才能开发。

  表现层(UI):展现给客户的界面。

  业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑的处理。

  数据访问层(DAL):对数据的删除、增加、修改、更新。是一种垂直关系。

6.MVC(model,viewer、controller)

MVC是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开。MVC最大的好处是将逻辑和页面分离。

7.装箱和拆箱

  值到引用是装箱。引用到值是拆箱。

  object obj = null;

  obj = 1; 装箱 ,把值类型包装成引用类型。

  int i = (int )obj; 拆箱

8.堆和栈的区别

  栈:由操作系统自动分配和释放。存放局部变量,函数的参数等。

  堆:是有程序员自己分配,如果自己不释放,则由os负责在程序结束时释放。

  生命周期不同,堆的生命周期更长。

9.能用foreache遍历访问的对象必须事项IEnumberable接口和GetEumberator方法。

10.值类型和引用类型的区别

  a.赋值时的不同,值赋值时复制包含的值,而引用赋值是赋值的引用对象的拷贝,并不包含对象所指的值。

  b.结构是属于值类型的,但是可以实现接口,这个是引用类型的特征,所以是个特例。值类型不可以派生出新类型。

  c.值类型不可能包含null值,但是可空类型允许把null赋值给值类型。在数据库操作中比较常见,因为数据库中会有未定义的列。可空类型必须初始化。

  d。每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

11.接口和类的异同

  不同点:

      接口没有具体的实现部分,不能直接被实例化。可以多继承,而类不可以多继承。类可以在不同的原文家中拆分实现。partial

  相同点:

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

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

12.抽象类(abstract class) 和接口的区别

    相同点:都不可以直接被实例化。都需要通过继承来实现方法、

    不同点:

        接口支持多继承。抽象类不可以

        接口只定义行为,而抽象类可以定义行为,还可以定义具体的实现。

        接口不能定义字段和包含实现的方法,抽象类可以定义字段和具体实现,只能定义签名。

13.string类因为是sealed(密封)类,所以不能被继承。

14.new的用法

  用来创建对象和调用构造函数的

  new可以用来向基类成员隐藏继承成员,类似于C++中的局部变量隐藏同名的全局变量一样。

15.线程和进程的理解:

    

.线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。

2.一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。

加分的回答。

谈谈多线程:多线程不一定比单线程快,尤其是在进行I/O操作的时候,因为浪费了多线程切换的时间。多线程只是为了充分利用空闲的CPU,提高计算效率。

另外,多线程虽然不一定能够提高执行速度,但是至少可以避免界面卡死的问题,尤其对于Winform这类程序。

16.强类型:指在编译时就确定的类型,不可更改、

17.using 的妙用:可以做为非托管代码资源的释放 其实等价于try。。。。finally

18.stringbuiler 和string的区别

    string在进行运算时会产生一个新的实例,而stringbuilder不会。总之,stringbuilder要由于string 的,因为它是原地拼接。

如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。

面试常问到问题:lambda表达式,多线程、资源释放、线程同步、泛型的优点、面向对象的概念、设计模式、委托、事件

自我的理解

  lambda表达式:最终调用的匿名方法

  例如:aa(int x,int y)=>{

  return x + y;

}

泛型委托Func<int ,string> delegate = p => p + "10";  返回类型为string。泛型最多可以接受五个参数、

static void Main(string[] args)
        {
            Func<int, int, bool> gwl = (p, j) =>
                {
                    if (p + j == 10)
                    {
                        return true;
                    }
                    return false;
                };
            Console.WriteLine(gwl(5,5) + "");   //打印‘True’,z对应参数b,p对应参数a
            Console.ReadKey();
        }

Func<T>的用法:多个参数,前面的为委托方法的参数,最后一个参数,为委托方法的返回类型。

多线程:

  启用多线程:ThreadStart是一个委托,这个委托的定义 void ThreadStart(),没有参数和返回值。

  线程的异步调用:用委托的BeginInvoke和EndInvoke方法操作线程

        BeginInvoke可以使用线程异步启动委托所指向的方法,而EndInvoke可以获得方法的返回值

http://www.jb51.net/article/46234.htm 这里的文章很详细的说明

ThreadStart是一个委托,实例化后可以作为参数传给Thread构造函数。

      Thread workThread = new Thread(new ThreadStart(CalcSum));

泛型的优点:

    泛型可以避免强类型转换,减少装箱拆箱提高性能。

    确保泛型类使用的参数是提供特定方法的类型。
    public class GenericList<T> where T : IEmployee

        

C# 面试知识点总结的更多相关文章

  1. 前端开发面试知识点大纲--摘自jackyWHJ

    前端开发面试知识点大纲:HTML&CSS:    对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 Ja ...

  2. Java---常用基础面试知识点

    综合网上的一点资源,给大家整理了一些Java常用的基础面试知识点,希望能帮助到刚开始学习或正在学习的学员. 1.抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方 ...

  3. 知名互联网公司校招 Java 开发岗面试知识点解析

    天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...

  4. Java web 前端面试知识点总结

    经过几家大厂面试,目前成功拿到唯品会offer,分享一下我的面试知识点总结: 耦合性:也称块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块的独立性 ...

  5. Java 面试知识点解析(一)——基础知识篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  6. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  7. Java 面试知识点解析(三)——JVM篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  8. Java 面试知识点解析(四)——版本特性篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  9. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  10. Java开发岗面试知识点解析

    本文作者参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编 ...

随机推荐

  1. 对express中引入文件时提示Error: Cannot find module错误的理解

    打算写个小demo,在引入一个routes文件时,一直提示Error: Cannot find module('./routes')的错误,经过一番了解. 如果要把整个文件夹下所有的模块都引进来  v ...

  2. MongoDB学习笔记~Mongo集群和副本集

    回到目录 一些概念 对于Mongo在数据容灾上,推荐的模式是使用副本集模式,它有一个对外的主服务器Primary,还有N个副本服务器Secondary(N>=1,当N=1时,需要有一台仲裁服务器 ...

  3. OSX下 pip更新及安装python库

    直接执行安装命令 $ pip install builtwith 提示pip当前版本为7.1.2,要使用"pip install --upgrade pip"升级到8.1.2 $  ...

  4. python的进制转换二进制,八进制,十六进制及其原理

    #!usr/bin/env python# coding:utf-8def binary(): '''二进制的方法与算法'''    Number = 10    Number1 = 20    Nu ...

  5. Centos7中所有的关机命令的奇怪现象

    今天在研究shutdown,reboot,halt,poweroff几种关机命令的区别是发现他们都是/bin/systemctl的软连接 ls -l /sbin/{shutdown,reboot,ha ...

  6. ubuntu下apache重启报Could not reliably determine the server’s fully......

    在Ubuntu上安装Apache,每次重启,都会出现以下错误提示: Could not reliably determine the server’s fully qualified domain n ...

  7. ELF Format 笔记(十一)—— 程序头结构

    ilocker:关注 Android 安全(新手) QQ: 2597294287 程序头表 (program header table) 是一个结构体数组,数组中的每个结构体元素是一个程序头 (pro ...

  8. 如何在Oracle中复制表结构和表数据

    1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table ta ...

  9. 虚基类&虚继承

    发现这个月准备竞赛完全没有更新哎... 改了下某华大一c++测试题...网上对虚继承讲的要么太繁琐要么不到位,自力更生 #include<iostream> #include<fst ...

  10. hdu-5992 Finding Hotels(kd-tree)

    题目链接: Finding Hotels Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 102400/102400 K (Java/ ...