영어로 읽기

다음을 통해 공유


Object 클래스

정의

.NET 클래스 계층의 모든 클래스를 지원하고 파생 클래스에 하위 수준 서비스를 제공합니다. 이는 모든 .NET 클래스의 궁극적인 기본 클래스입니다. 형식 계층의 루트입니다.

public class Object
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual)]
[System.Serializable]
public class Object
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Object
특성

예제

다음 예제에서는 Object 클래스에서 파생된 Point 형식을 정의하고 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.
        var 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 $"({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.
        var p1 = new Point(1,2);

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

        // Make another variable that references the first Point object.
        var 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: {p1.ToString()}");
    }
}

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

설명

이 API에 대한 자세한 내용은 개체대한 추가 API 비고를 참조하세요.

생성자

Object()

Object 클래스의 새 인스턴스를 초기화합니다.

메서드

Equals(Object, Object)

지정된 개체 인스턴스가 같은 것으로 간주되는지 여부를 결정합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

Finalize()

개체가 리소스를 해제하고 가비지 수집에 의해 회수되기 전에 다른 정리 작업을 수행할 수 있습니다.

GetHashCode()

기본 해시 함수로 사용됩니다.

GetType()

현재 인스턴스의 Type 가져옵니다.

MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

ReferenceEquals(Object, Object)

지정된 Object 인스턴스가 동일한 인스턴스인지 여부를 확인합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

적용 대상

제품 버전
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

스레드 보안

이 형식의 공용 정적(Visual Basic의Shared) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터 안전한 것으로 보장되지 않습니다.