上記のとおり、C#のObjectから継承するのは冗長ですか? 以下の両方のコードセットで同等のオブジェクトが定義されていますか?C#でオブジェクトから継承する冗長?
class TestClassUno : Object
{
// Stuff
}
対
class TestClassDos
{
// Stuff
}
私はMSDNに周りの詮索が、完全に決定的な何かを見つけることができませんでした。
上記のとおり、C#のObjectから継承するのは冗長ですか? 以下の両方のコードセットで同等のオブジェクトが定義されていますか?C#でオブジェクトから継承する冗長?
class TestClassUno : Object
{
// Stuff
}
対
class TestClassDos
{
// Stuff
}
私はMSDNに周りの詮索が、完全に決定的な何かを見つけることができませんでした。
内のオブジェクトから継承する冗長であると言います。
これらの2つの唯一の時間は、誰かが実際に同じ名前空間に別のObject
タイプを定義した場合です。この場合、Object
のローカル定義が優先して変更する非常に多くの継承オブジェクト
namespace Example {
class Object { }
class C : Object { }
}
コーナーケースを私は
注意する前にそれを見ていない場合は、それを指摘しないだろうということObject
の代わりにobject
を使用した場合も同じです。 C#キーワードobject
はSystem.Object
のタイプエイリアスであるため、Example.Object
と一致しません。もちろん
namespace Example2 {
class Object { }
class C : Object { } // Uses Example.Object
class D : object { } // Uses System.Object
}
あなたが本当に邪悪な開発者を持っている場合、あなたはまだobject
namespace System {
class Object {
private Object() { }
}
}
namespace Example3 {
// This will properly fail to compile since it can't bind to the private
// Object constructor. This demonstrates that we are using our definition
// of Object instead of mscorlib's
class C : object { } // Uses our System.Object
}
はい、最終的にオブジェクトはすべてclass
と定義されていればオブジェクトを継承します。明示的な継承をコードの外にしておきます。
オブジェクトは.Netのすべてのクラスの母です。それ以上に何もありません。
すべてのクラスは、それを継承します。したがってこのコード
class TestClassDos
{
// Stuff
}
は自動的にオブジェクトから継承することを意味します。
証明書:継承している可能性のあるオブジェクトをオブジェクトに型キャストすることができます。 Objectクラスの
まとめ
// Supports all classes in the .NET Framework class hierarchy and provides low-level
// services to derived classes. This is the ultimate base class of all classes
// in the .NET Framework; it is the root of the type hierarchy.
は、はい、左に指定されていないすべてのclass
定義は暗黙のうちに二つの定義が等価であるので、System.Object
から継承する場合、クラス
MSDNとの混同を引き起こす可能性があります:Object class:.NET Frameworkクラス階層内のすべてのクラスをサポートし、低レベルのサービスを提供しています派生クラスに。これは、.NET Frameworkのすべてのクラスの究極の基本クラスです。これは型階層の根です。
チェックこの研究:inherits from object? An investigation into how.
はい、彼らは両方とも同じものです、私は誰もが構造体に言及見たとは思わないが、すべてのオブジェクト(クラスを宣言する場合にはかかわらず、ですまたは、それらすべてが最終的にオブジェクトから継承する構造体)は、このObject MSDN articleと明示的に `が暗黙のうちにobject`から継承する基本クラスを指定していないStructs
任意のクラス定義上、この他の記事を参照してください。 –