속성(C# 및 Java)

업데이트: 2007년 11월

C#에서 속성은 getset이라는 접근자 메서드를 통해 전용 필드에 간결하게 액세스하는 방식을 제공하는 인터페이스, 구조체 또는 클래스의 명명된 멤버입니다.

다음 코드 예제에서는 name이라는 전용 변수에 대한 액세스를 추상화하는 Animal 클래스에 대한 Species라는 속성을 선언합니다.

public class Animal
{
    private string name;

    public string Species
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}

대개 속성의 이름은 액세스 대상인 내부 멤버의 이름과 동일하지만 위 경우의 Name에서와 같이 첫 번째 문자가 대문자로 시작하거나 내부 멤버의 경우 _ 접두사가 있다는 점에서 차이가 있습니다. 또한 set 접근자에는 value라는 암시적 매개 변수가 사용되고 있습니다. 이 매개 변수의 형식은 기본 멤버 변수 형식입니다.

접근자를 지원하지 않는 .NET Framework 기반의 언어와 호환성을 유지하기 위해 내부에서 실제로는 접근자가 get_X() 및 set_X() 메서드로 표현됩니다. 속성을 정의한 후에는 매우 쉽게 값을 가져오거나 설정할 수 있습니다.

class TestAnimal
{
    static void Main()
    {
        Animal animal = new Animal();
        animal.Species = "Lion";                   // set accessor
        System.Console.WriteLine(animal.Species);  // get accessor

    }
}

속성에 get 접근자만 있는 경우 이는 읽기 전용 속성입니다. 속성에 set 접근자만 있는 경우 이는 쓰기 전용 속성입니다. 두 접근자가 모두 있으면 이는 읽기/쓰기 속성입니다.

참고 항목

개념

C# 프로그래밍 가이드

참조

속성(C# 프로그래밍 가이드)

기타 리소스

Java 개발자를 위한 C# 프로그래밍 언어