老赵面试题参考答案 _第1页
老赵面试题参考答案 _第2页
老赵面试题参考答案 _第3页
老赵面试题参考答案 _第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 4 老赵面试题参考答案 类( 结构( 区别是什么?它们对性能有影响吗? 有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构? 關於類和結構的區別這個問題我真的蠻想吐槽的,從大學時代學習 C+就開始有了, 時候可以很容易回答出來,那就是如果訪問修飾符,那麽 默認是 默認是 來好像兩者統一了,一度有種說法兩者已經完全一樣了,當然結構一直都是值類 型,速度自然也比類要快些,所以一般都會說性能特別講究的場合會使用結搆體,但是如果值類型需要頻繁的裝箱和拆箱那麽又不好說了,後來 不好意思我對這個問題跟丟了。 类 (是最基础的 C# 类型。类是一个数据结构,将状态(字段)和操作(方法和其他函数成员)组合在一个单元中。类为动态创建的类实例 (提供了定义,实例也称为对象 (类支持继承 (和多态性 (这是派生类 (可用来 扩展和专用化基类 (的机制。(先給出C#規範文檔中的類定義,呵呵,這個東西要是問起來估計很多人要悶,就和人是什麽之類的問題一樣。) 2 / 4 像类一样,结构 (是能够包含数据成员和函数成员的数据结构。但是与类不同,结构是值类型,不需要堆分配。(引用類型總是從托管堆上分配,值類型的實例一般在綫程棧上分配,雖然也作為一個字段嵌入一個引用類型的對象中)结构类型的变量直接存储该结构的数据,而类类型的变量则存储对动态分配的对象的引用。结构类型不支持用户指定的继承(所有的值類型都 從 生,都是隱式密封 ),并且所有结构类型都隐式地从类型 承。 结构对于具有值语义的小型数据结构尤为有用。复数、坐标系中的点或字典中的 “ 键 对都是结构的典型示例。对小型数据结构而言,使用结构而不使用类会大大节省需要为应用程序分配的内存数量。 结构构造函数也是使用 算符调用,但是这并不意味着会分配内存(值類型的使用緩解了托管堆中的壓力,並減少了一個應用程序在其生存期内需要進行的垃圾回收次 數)。结构构造函数并不动态分配对象并返回对它的引用,而是直接返回结构值本身(通常是堆栈上的一个临时位置),然后根据需要复制该结构值。 对于类,两个变量可能引用同一对象,因此对一个变量进行的操作可能影响另一个变量所引用的对象。对于结构,每个变量都有自己的数据副本,对一个变量的操作不会3 / 4 影响另一个变量。 结构的两个限制。首先,复制整个结构通常不如复制对象引用的效率高,因此结构的赋值和值参数传递可能比引用类型的开销更大。其次,除了 数,不可能创建对结构的引用,这样限制了结构 的应用范围。 上面這段來自 C#的規範文檔,清晰而權威。大家也應該看出來了,這個區別與其說是類和結構的區別,不如說是引用類型和值類型的區別。 有哪些是类(结构),为什么它们不是结构(类)? 哪些類和結構,你就隨便說吧,字空間的有多少啊 個人認爲比較需要注意的是玩意其實是一個結構體。)爲什麽他們不是結構(類)呢?這道題和下面的 小問題其實是一個問題那就是什麽時候定義結構什麽時候定義類,下面一併回答。 在自定义类型时,您如何选择是类还是结构? 除非滿足一下所有條件,否則不要定義成值類型(結構體) 第一,類型具有基元類型的行爲。類型簡單,其中沒有成員會修改類型的任何實例字段。 第二,類型不需要從其他任何類型繼承。 4 / 4 第三,類型不會派生出其他任何類型。 除了滿足以上全部條件,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论