zoukankan      html  css  js  c++  java
  • <C#>面试题集锦

    1、装箱和拆箱的分别?

    答:装箱就是把值类型转换成引用类型;拆箱就是把引用类型转换成值类型。

    2、怎样创建一个线程?

    答:一使用Thread类;二使用Delegate.BeginInvoke;三使用ThreadPool.Queueworkitem。

    3、String是值类型,还是引用类型?与StringBuilder的区别?

    答:String是引用类型。String对象的内容是不变的,StringBuilder对象的内容是可以改变的且高效。

    如 string a = "abc"; a = a + "def" ; 第一句,a 是一个对象,分配地址;第二句,a 被释放,重新分配。a 原本指向 String Object Instance(“abc”), a + “def” 会造出一新的 String Object Instance(“abcdef”),然后,a指向新的String Instance。

    StringBuilder b = new StringBuilder(“abc”); b.append("def"); b 一直指向StringBuilder Object。

    4、Event和delegate的区别?

    答:delegate类似C#中的指针,例如传递一个类A的方法给另一个类B的对象,让类B的对象可以调用类A的方法。event是特殊类型的多路广播委托,仅可从声明它们的类或结构中调用。

    5、指针和delegate的区别?

    答:首先,指针是C++中类型,delegate是C#中的类似指针。其次,指针指向静态函数,而delegate既可以指向静态函数,又可以引用非静态函数。最后,与指针相比,delegate是面向对象,类型安全,可靠的受控对象。

    6、泛型的实现?

    答:泛型会依据类型参数新建一个匿名类,其参数、返回值,依类型参数而定。http://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx

    7、什么是C#?什么是.Net FrameWork?

    答:C#是一门开发语言,是由C及C++演变而来的。.net framework类似于JVM,是微软Web Service的引擎。.Net FrameWork由两部分组成,分别是公共语言运行时(CLR),统一类库集(FCL)。

    8、多态是什么?通过什么来继承?通过什么来隐藏基类?

    答:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态。多态是通过override来实现的,通过继承父类的virtual方法。使用new关键字,调用的是新的类成员,而不是已被替换的基类成员,基类成员就被称为隐藏成员。

    9、如何实现多线程的同步?

    答:维护自由锁(InterLocked)实现同步;监视器(Monitor)和互斥锁(Lock);读写锁(ReadWriteLock);系统内核对象:1、互斥,信号量,事件;2、线程池。

  • 相关阅读:
    算法提高 身份证号码升级
    枚举排列
    排列数
    算法训练 K好数
    算法训练 前缀表达式
    算法训练 区间k大数查询
    最大最小公倍数
    Anagrams问题
    Uiautomator 2.0
    Uiautomator 2.0
  • 原文地址:https://www.cnblogs.com/virgil/p/3719835.html
Copyright © 2011-2022 走看看