이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Object 클래스

 

게시 날짜: 2016년 11월

.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합니다. 소스 코드를 온라인, 오프 라인에서 살펴보고에 대 한 참조를 다운로드 및; 디버그 시 소스 (패치 및 업데이트 포함)를 단계별로 실행 see instructions.

언어에서 상속을 선언 하는 클래스를 일반적으로 필요 하지 않습니다 Object 상속은 암시적 때문에 있습니다.

.NET Framework의 모든 클래스에서 파생 되므로 Object에 정의 된 모든 메서드는 Object 클래스는 시스템의 모든 개체에서 사용할 수 있습니다. 파생 클래스 수를 포함 하 여 이러한 메서드의 일부 재정의지 않습니다.

  • Equals-개체 간의 비교를 지원 합니다.

  • Finalize-개체를 자동으로 회수 하기 전에 정리 작업을 수행 합니다.

  • GetHashCode-해시 테이블의 사용을 지 원하는 개체의 값에 해당 하는 숫자를 생성 합니다.

  • ToString클래스의 인스턴스를 설명 하는 사람이 읽을 수 있는 텍스트 문자열을 제조 합니다.

인스턴스를 허용 하는 클래스 멤버를 만들 수 같은 모든 종류의 개체를 처리 해야 하는 컬렉션 클래스를 디자인 하는 경우는 Object 클래스입니다. 그러나 boxing 및 unboxing 형식의 프로세스는 성능 비용을 전달 합니다. 새 클래스에는 일부 값 형식은 자주 처리를 알고 있는 경우 한 boxing의 비용을 최소화 하기 위해 두 가지 방법 중 하나를 사용할 수 있습니다.

  • 허용 하는 일반 메서드 만들기는 Object 형식과에서 자주 처리 클래스 각각의 값 형식을 허용 하는 형식별 메서드 오버 로드의 집합입니다. 유형별 메서드 호출 매개 변수 형식을 받는 있으면 boxing 발생 하 고 형식 관련 메서드가 호출 됩니다. 메서드 호출 매개 변수 형식과 일치 하는 인수가 없으면 boxed 매개 변수 및 일반 메서드가 호출 됩니다.

  • 제네릭을 사용 하 여 형식 및 해당 멤버를 디자인 합니다. 공용 언어 런타임 클래스의 인스턴스를 만들고 제네릭 형식 인수를 지정할 때 폐쇄형된 제네릭 형식을 만듭니다. 제네릭 메서드의 형식 관련 이며 호출 매개 변수를 boxing 하지 않고 호출할 수 있습니다.

허용 및 반환 하는 범용 클래스를 개발 해야 하는 경우도 있지만 Object 형식, 또한 자주 사용 되는 형식을 처리 하려면 특정 형식의 클래스를 제공 하 여 성능을 개선할 수 있습니다. 예를 들어 설정 하 고 부울 값을 가져오는에 적용 되는 클래스를 제공 하는 비용 boxing 및 unboxing 부울 값을 제거 합니다.

다음 예제에서 파생 되는 지점 형식 정의 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 이후 사용 가능

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

맨 위로 이동
표시: