C# C对象派生
根据规范: .NET Framework中的所有类都是从对象派生的 如何从对象基类派生类,而不显式地将对象类写入父类 即:C# C对象派生,c#,.net,c#-4.0,C#,.net,C# 4.0,根据规范: .NET Framework中的所有类都是从对象派生的 如何从对象基类派生类,而不显式地将对象类写入父类 即: public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> 另请注意:您可以访问的所有基本方法都在每个类/类型中实现
public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string>
另请注意:您可以访问的所有基本方法都在每个类/类型中实现: Equals、ReferenceEquals、GetHashCode、GetType、ToString 这意味着始终存在来自System.Object的隐藏继承。对象只是一个别名-当您在VS中选择对象时,它还将高亮显示所有System.object类以指示标识,反之亦然。它似乎很难在C中实现,我想从“object”继承是不可避免的。这是基础,它允许你访问任何东西,不管它是什么——即使你几乎不能做任何事情而不把它扔回来。
object x = new *anything*;
此外,抽象类实例不能被分配,但这是在“抽象”的末尾主动阻止它,而不是在“对象”上接收它
若对象不能正常工作,那个么您就必须从“System.object”继承所有基类,这将是乏味和毫无意义的。对象并不意味着要被排除在外,因为它将导致巨大的损失,因为在它有意义的时候,没有特定的方式来引用任何东西。今天,我编写了一个类来收集对象,过滤掉空值,并以格式化字符串的形式输出它们的ToString,以便进行调试
另一个有趣的观点是“object”可以被抽象,因此objectx=新对象;不再有效。因为物体到底是什么?这其实没什么,但仍然很重要。它的信息比布尔变量少。但是C开发人员决定不这样做,这似乎带来了更多的简单性。还有/没有充分/充分的理由禁止它。这是隐含的,因为根据定义,.NET Framework中的所有类都是从Object派生的。这有点像说“我所有的孩子都是人”。我不必显式地指定它,因为它在定义上是正确的。反过来想一想——如果该规范是真的,那么强制您指定它从对象继承的价值是什么?没有好处-因此它不是必需的:当类\类型包含在类\基中时,它指定要声明的类的直接基类。如果一个类声明没有类\u基,或者如果类\u基只列出接口类型,那么直接基类被假定为objectOk,我可以理解这一点,但从技术角度来看,这是如何获得的?想象一下,如果显式继承自Object,将如何获得它。它是以完全相同的方式获得的-无需指定它显式地从对象继承。换句话说,它是隐式的还是显式的对它的实现方式没有影响。就这么简单。这是个骗局!