- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 msdn 规范中,我注意到 System.Object
是 .Net 中的最终基类。他们说System.ValueType
是继承自 System.Object
的抽象类,覆盖了 Equals
、Compare
等方法...bool
、int
等值类型继承自 System.ValueType
所有其他 .net 对象继承自 System.Object
.
我有 2 个问题。
我假设它只有 2 个直接子级(忽略我们可以创建更多),即 System.ValueType 和 System.ReferenceType 两者都有完全不同的实现。
**编辑:**没有 System.ReferenceType。只有 Sytem.Object 和 Sytem.ValueType(覆盖基类)。在这里道歉。
所以可能需要 System.Object 来处理基本的 CLR 功能,例如使用 new() 创建对象、强制执行默认构造函数、GC 等?
Sytem
dll 并看到 bool 的实现时,我只看到一个结构。MyCustomClass
做了什么以使其从 System.Object
继承(因为继承是在编译时确定的,我认为 CTS 正在做它)如果我的理解有误,请随时纠正我/编辑帖子。
最佳答案
你在这个问题上有很多问题。将来,考虑针对每个问题发布一个问题。
What is the need of System.Object?
这个问题含糊不清。让我改一下。
Why was the C# type system designed so that all non-pointer types had a common base type?
获得多态性的好处。在没有泛型的类型系统中,例如 C# 1.0 类型系统,您希望能够创建任意对象的列表。
Why wasn't an interface preferred over a class type?
接口(interface)指定功能。基类允许共享实现。 Object 上的方法具有在派生类型之间共享的实现。
Am assuming it has only 2 direct Children(ignoring that we can create more) which is System.ValueType and System.ReferenceType both having entirely different implementations.
这完全是错误的。
So System.Object may be needed to handle the basic CLR functionalities like object creation using new()
没有。
enforcing default constructor
没有。尽管最终调用了对象的默认构造函数是真的,但该构造函数不执行任何操作。所以说类型的目的是确保调用一个不做任何事情的构造函数是一件奇怪的事情。
GC etc ?
没有。
When I de-compile System.dll, and see the implementation of bool, I just see a struct.
正确。您应该知道所有不可为 null 的非枚举结构都直接继承自 System.ValueType。
For a class (say Exception) I don't see the inheritance to System.ReferenceType or System.Object.
正确。您应该知道所有类类型都继承自 System.Object(当然,如果没有指定其他类型。)
How is this inheritance handled ?
这个问题太模糊,无法回答。
what is Common Type System doing to MyCustomClass to make it inherit from System.Object(since the inheritance is determined at compile time am thinking CTS is doing it)
我完全不知道你想在这里问什么。尝试使问题更精确。
一个你没有问但可能应该问的问题是:
What does it mean when I say that type A inherits from type B?
这意味着类型 B 的所有成员也是类型 A 的成员。
All members? Even private members?
是的。继承是一种类型的成员也是另一种类型的成员的属性。
关于C# System.Object 是最终的基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30603483/
考虑需要与 iOS 5 和 iOS 6 兼容的应用。 有没有办法标记纯粹为了 iOS 5 兼容性而存在的代码,以便当部署目标最终更改为 iOS 6 时它显示为编译错误(或警告)? 像这样: #IF_D
我想我知道答案但是...有什么方法可以防止全局变量被稍后执行的 修改吗? ?我知道全局变量首先是不好的,但在必要时,有没有办法让它成为“最终”或“不可变”?欢迎黑客/创造性的解决方案。谢谢 最佳答案
class Foo { final val pi = 3 } 是否每Foo对象有一个 pi成员?因此我应该把 pi在伴生对象中? 最佳答案 如果您担心内存占用,您可以考虑将此字段移动到伴随对象中。
随着可用的 Web 开发框架种类繁多,似乎总是有一种“尝试新事物”的永久动机。因此,我们中的一些人发现自己用一个框架换另一个框架,从来没有对最终结果完全满意。当然,总会有一个特定的 Web 框架可以完
在MDN中指出, If the finally block returns a value, this value becomes the return value of the entire try
我正在尝试用 JavaScript 制作一个基本的井字棋类型游戏。尽管 x 和 y 值在 if 语句的范围内,但除最后一个之外的所有空格都有效。 我不知道为什么最后的 else if 语句不起作用。
我想知道如何使用PowerMock模拟kotlin最终类(class),以便进行测试。我按照指南测试了Java最终类,但仍然出现此错误 Cannot subclass final class 有什么办
考虑以下设置: // debugger class public class Debug { // setting public final static boolean DEBUG
给定以下类(class): public class SomeClass { private final int a; public SomeClass(int a) {
This question already has answers here: What does “final” do if you place it before a variable?
我有一个类PasswordEncryptor,它使用org.jasypt.util.password.StrongPasswordEncryptor作为其字段之一,因为我试图使应用程序“可集群”所有类
我今天有一个关于 StreamReader 类的问题。具体使用文件名参数初始化此类例如: TextReader tr = new StreamReader(fileName); 显然,当此操作完成后,
我想弄清楚什么是使用带锁的 try/finally 的最佳方式。 当我在同一个地方有 lock() 和 unlock() 时,我只使用 try/finally block 作为 JavaDoc还建议:
在 Java 中序列化后是否可以将 final transient 字段设置为任何非默认值?我的用例是一个缓存变量——这就是它是 transient 的原因。我还有一个习惯,就是制作不会改变的 Map
在this问题说 final transient 字段在序列化后不能设置为任何非默认值。那么,为什么我为 aVar1 变量设置了 3,为 aVar3 变量设置了 s3? import java.io.
在Xbox上进行开发时,我使用的是F#规范中最终工作流程的修改版。 Xbox上的.net框架似乎不支持尾部调用。因此,我必须在编译时禁用尾部调用优化。 尽管起初看来这种限制会阻止在计算表达式中使用任何
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我想让我的带有自定义对象的ArrayList成为最终对象,以便对象在设置后无法更改。 我试图这样声明它: private final ArrayList XML = new ArrayList();
我有一个场景,我需要类似于 .NET 的 try-catch-finally block 的内容。 在我的尝试中,我将创建一个#temp表,向其中插入数据并基于#temp处理其他数据集。 先是CATC
对此可能有一个简单的答案,但尝试充分使用 Butterknife,将一些 findViewById 转换为 @BindViews,并注意到我无法在需要声明为 Final 的 View 上使用 Bind
我是一名优秀的程序员,十分优秀!