zoukankan      html  css  js  c++  java
  • C#经典面试题及答案

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

    答:结构和类具有大体的语法,但是结构受到的限制比类多。结构不能声明默认的的构造函数,为结构的副本是编译器创建和销毁的,所以不需要默认的构造函数和析构函数,结构是值类型。所以对结构变量所做的改变不会影响其的原值,而类是应用类型。改变其变量的值会改变其原值,声明结构用关键字struct关键字,声明类用class关键字,向方法传递结构是通过值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New关键字。类可以实现接口。

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

     答:系统资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已经阻塞,对已经获得的资源不放,进程获得资源时,未能使用完前,不能强行剥夺。

    3.谈谈对.net core的理解?

    ,net core 是.net framework的新一代版本。是微软开发啊的第一个官方版本。具有跨平台(windows.Mac osx linux)能力的应用程序开发框架(Application Framework),未来也将会支持FreeBSD与Alpine平台。也是微软一开始发展就开源的平台,它经常也会拿来和现有的开源.net 平台Mono比较。.net core 采用包化(Package)的管理方式。应用程序只需要获取需要的组件即可,同时也有独立的版本线。不再硬性要求应用程序跟随主线版本。

    4.接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?

    接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类,但有个条件,条件是,实体类必须要有可明确的构造函数.

    5.构造器Constructor是否可以被继承。是否可以被Overfide ?

    答:构造器Constructor不可以被继承,因此不能被重写Overriding,但是可以被重载Overloading

    6.当一个线程进入一个对象的方法后。其他线程是否可以进入该对象的方法?

    答:不可以。一个对象的方法只能由一个线程来访问。

    7.Error和Exception的区别?

    答:erro表示恢复不是不可能,但是很困难,exception表示一种实际或者现实问题,它表示程序运行正常不可以发生的。

    8.C#委托是什么。事件是不是一种委托?

    答:委托是一种安全的类似与函数指针,但是它比指针要安全的多,它可以吧方法作为委托传递给另外一个方法,可以理解为指向函数的引用。事件是一种消息机制。它是一种委托,委托不带方法体。

    9.fianl finally finallize 的区别?

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

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

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

    10.HashMap和hashtable的区别?

    答:HashMap是Hashtable 的轻量级实现。非线程安全的实现他们都实现了map接口,主要区别是HashMap键值可以为null,效率可以高于Hashtable.

    11.Override和Overload的区别。

    答:Override是重写的意思,它表示重写基类的方法。而且方法的名称。返回类型。参数类型。参数个数,要与基类相同,Overload是重载的意思,它也表示重写基类的方法。但是只要方法名相同。别的可以不同。

    14.在一个B/S结构中需要传递变量值时,不能使用session,cookie,application.你有几种方法。

    答:this.server. Transfer. Querystring

    15:C#索引器实现过程。是否只能根据数字索引?

    答:不是的,可以是任意类型。

    16.New 有几种用法?

    答:有三种:第一种。实例化如:New Class()

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

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

    17如何把Array复制到Arraylist中?

    Foreach(object o in Array),ArrayList Add(0)等有好多种方法 。

    18.概述反射个序列化

    答:反射,反射提供了封装的程序集。模块和类型对象,可以用反射动态地创建类型的实例。将类型绑定到现有对象,或者从现有对象类型里获取类型。然后调用类型的方法或访问字段和属性。

    序列化:将对象装换为另外一种,媒介传输的格式过程,如:序列化一个对象。用Http通过Internet在客户端和服务器之间传递对象,在另外一端用反序列化从该流程中重新获得到对象。

    19.Const 和ReadOnly的区别

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

    20.UDP和TCP连接有何种异同?

    答:TCP是传输控制协议。提供的是面向连接的。是可靠的,字节流服务,当用户和服务器彼此进行数据交互的时候,必须在他们数据交互前进行TCP连接之后才能传输数据,TCP提供超时重拨。检验数据功能。

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

    21.进程和线程分别该怎么理解?

    进程是比线程大的运行单元。都由操作系统所体会的系统运行单元,一个程序中至少要有一个进程,至少有一个线程,线程的划分尺度要比进程要小,进程拥有独立的内存单元。线程是共享内存。从而极大的提高了程序的运行效率。

    22.ASP.Net页面传值的几种方式?

    QueryString session  cookie  application  server   Transfer  respose  redictor  

    23.应用程序域,什么是托管代码?什么是强类型系统。什么是装箱和拆箱,什么是重载?CTS,CLS,CLR又是什么?

    答:应用程序域:就是为安全性。可靠性。隔离性。和版本控制。及卸载程序提供隔离边界。它通常由运行库宿主创建,应用程序域提供了更加安全用途更广的处理单元,托管代码:使用CLR编译语言编辑器开发编写的代码就是托管代码。

    装箱:把值类型转换为引用类型的过程。是隐式的。相反过程就是拆箱。是显式

    CTS:公共类型系统。CLS是公共语言规范。CLR公共语言运行库。强类型系统。每个变量和对象都必须具有申明类型。

    24值类型和引用类型的区别:

    答:值类型的值是存放在堆栈中的。改变其值。不改变变量原有的值。而引用类型的值是存放在栈中的。其引用的地址是存放在堆栈中的,改变其值也就改变类变量原有的值。值类型不允许包含null值。然而可空类型可以将null赋值给值类型。

    25.用一句话对委托做一个概括?

    答:委托可以将多个不同的方法绑定到同一个委托变量中。当调用此变量时()可以依次调用所有绑定的方法。

  • 相关阅读:
    背水一战 Windows 10 (90)
    背水一战 Windows 10 (89)
    背水一战 Windows 10 (88)
    背水一战 Windows 10 (87)
    背水一战 Windows 10 (86)
    背水一战 Windows 10 (85)
    背水一战 Windows 10 (84)
    背水一战 Windows 10 (83)
    背水一战 Windows 10 (82)
    背水一战 Windows 10 (81)
  • 原文地址:https://www.cnblogs.com/whp0224/p/9686116.html
Copyright © 2011-2022 走看看