この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Object クラス

 

.NET Framework クラス階層のすべてのクラスをサポートし、派生クラスに下位レベルのサービスを提供します。 これは、.NET Framework の全クラスの基本クラスであり、型階層のルートです。

この型の .NET Framework ソース コードを参照するを参照してください。、 Reference Sourceです。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

System.Object
   すべてのクラス、構造体、列挙型、デリゲート。

[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
[ComVisibleAttribute(true)]
public class Object

名前説明
System_CAPS_pubmethodObject()

Object クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。

System_CAPS_pubmethodSystem_CAPS_staticEquals(Object, Object)

指定されたインスタンスが等しいかどうかを判断します。

System_CAPS_protmethodFinalize()

オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。

System_CAPS_pubmethodSystem_CAPS_staticReferenceEquals(Object, Object)

指定した複数の Object インスタンスが同一インスタンスかどうかを判断します。

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。

System_CAPS_noteメモ

この型の .NET Framework ソース コードを表示するを参照してください。、 Reference Sourceです。 ソース コードをオンラインで参照するか、リファレンスをダウンロードしてオフラインで表示するか、デバッグ中にソース (パッチや更新を含む) をステップ実行することができます。 instructionsを参照してください。

通常の言語は、クラスからの継承を宣言する必要ありませんObjectの継承は暗黙的なためです。

.NET Framework のすべてのクラスがから派生するためObjectで定義されているすべてのメソッド、Objectクラスは、システム内のすべてのオブジェクトで使用できます。 派生クラスと、これらのメソッドの一部をオーバーライドしないでください。

  • Equals-オブジェクト間の比較をサポートしています。

  • Finalize-オブジェクトが自動的にクリアされる前のクリーンアップ操作を実行します。

  • GetHashCodeハッシュ テーブルの使用をサポートするために、オブジェクトの値に対応する番号を生成します。

  • ToStringクラスのインスタンスを記述する人が判読できるテキスト文字列を製造しています。

どの型のオブジェクトを処理する必要が、コレクションなど、クラスをデザインする場合は、インスタンスを受け入れるクラス メンバーを作成することができます、Objectクラスです。 ただし、ボックス化と型をボックス化解除のプロセスでは、パフォーマンス コストが伴います。 新しいクラスの特定の値型を頻繁に処理することがわかっている場合は、ボックス化のコストを最小限に 2 つの方針のいずれかを使用できます。

  • 作成する一般的な方法を受け入れる、Object型、および頻繁に処理するクラスを期待する各値の型を許容する型固有のメソッド オーバー ロードのセット。 型固有のメソッドを呼び出し元のパラメーター型を受け付けるが存在する場合は、ボックス化が行われず、型固有のメソッドが呼び出されます。 呼び出し元のパラメーターの型に一致するメソッドの引数がない場合は、パラメーターがボックス化され、一般的なメソッドが呼び出されます。

  • ジェネリックを使用するには、種類とそのメンバーをデザインします。 共通言語ランタイムは、クラスのインスタンスを作成し、ジェネリック型引数を指定するときに、クローズ ジェネリック型を作成します。 ジェネリック メソッドは型固有であり、呼び出し元のパラメーターをボックス化しなくても呼び出すことができます。

受け取るまたは返す汎用クラスを開発するために必要な場合がありますがObject型も頻繁に使用される型を処理する型固有のクラスを提供することによってパフォーマンスが向上することができます。 たとえばは、特定の設定とブール値を取得するクラスを提供するには、ボックス化とボックス化解除のブール値のコストが削減されます。

次の例から派生したポイントの種類の定義、Objectクラスし、オーバーライドの仮想メソッドの多くは、Objectクラスです。 さらに、例、静的の多くを呼び出すのメソッドとインスタンス、Objectクラスです。

using System;

// The Point class is derived from System.Object.
class Point 
{
    public int x, y;

    public Point(int x, int y) 
    {
        this.x = x;
        this.y = y;
    }

    public override bool Equals(object obj) 
    {
        // If this and obj do not refer to the same type, then they are not equal.
        if (obj.GetType() != this.GetType()) return false;

        // Return true if  x and y fields match.
        Point other = (Point) obj;
        return (this.x == other.x) && (this.y == other.y);
    }

    // Return the XOR of the x and y fields.
    public override int GetHashCode() 
    {
        return x ^ y;
    }

    // Return the point's value as a string.
    public override String ToString() 
    {
        return String.Format("({0}, {1})", x, y);
    }

    // Return a copy of this point object by making a simple field copy.
    public Point Copy() 
    {
        return (Point) this.MemberwiseClone();
    }
}

public sealed class App {
    static void Main() 
    {
        // Construct a Point object.
        Point p1 = new Point(1,2);

        // Make another Point object that is a copy of the first.
        Point p2 = p1.Copy();

        // Make another variable that references the first Point object.
        Point p3 = p1;

        // The line below displays false because p1 and p2 refer to two different objects.
        Console.WriteLine(Object.ReferenceEquals(p1, p2));

        // The line below displays true because p1 and p2 refer to two different objects that have the same value.
        Console.WriteLine(Object.Equals(p1, p2));

        // The line below displays true because p1 and p3 refer to one object.
        Console.WriteLine(Object.ReferenceEquals(p1, p3));

        // The line below displays: p1's value is: (1, 2)
        Console.WriteLine("p1's value is: {0}", p1.ToString());
    }
}

// This code example produces the following output:
//
// False
// True
// True
// p1's value is: (1, 2)
//

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型のpublic static (Visual Basic ではShared) メンバーは、スレッド セーフです。 インスタンス メンバーは、スレッド セーフであることを保証はありません。

トップに戻る
表示: