다음을 통해 공유


자동으로 구현된 속성(C# 프로그래밍 가이드)

C# 3.0 이상에서는 속성 접근자에 추가 논리가 필요하지 않은 경우 자동으로 구현된 속성을 사용하여 속성 선언을 보다 간결하게 만들 수 있습니다.이러한 속성을 통해 클라이언트 코드에서 개체를 만들 수도 있습니다.다음 예제와 같이 속성을 선언하면 컴파일러는 속성의 get 및 set 접근자를 통해서만 액세스할 수 있는 private 익명 지원 필드를 만듭니다.

예제

다음 예제에서는 자동으로 구현된 속성이 몇 개 있는 간단한 클래스를 보여 줍니다.


// This class is mutable. Its data can be modified from
// outside the class.
class Customer
{
    // Auto-Impl Properties for trivial get and set
    public double TotalPurchases { get; set; }
    public string Name { get; set; }
    public int CustomerID { get; set; }

    // Constructor
    public Customer(double purchases, string name, int ID)
    {
        TotalPurchases = purchases;
        Name = name;
        CustomerID = ID;
    }
    // Methods
    public string GetContactInfo() {return "ContactInfo";}
    public string GetTransactionHistory() {return "History";}

    // .. Additional methods, events, etc.
}

class Program
{
    static void Main()
    {
        // Intialize a new object.
        Customer cust1 = new Customer ( 4987.63, "Northwind",90108 );

        //Modify a property
        cust1.TotalPurchases += 499.99;
    }
}

이전 예제에 표시된 클래스는 변경 가능합니다.개체가 만들어진 후 클라이언트 코드에서 개체의 값을 변경할 수 있습니다.중요한 동작(메서드) 및 데이터가 포함된 복합 클래스에는 public 속성이 있어야 하는 경우가 많습니다.그러나 값 집합(데이터)을 캡슐화만 하고 동작이 거의 또는 하나도 없는 작은 클래스나 구조체의 경우 set 접근자를 private로 선언하여 개체를 변경 불가능으로 만드는 것이 좋습니다.자세한 내용은 방법: 자동으로 구현된 속성을 사용하여 간단한 클래스 구현(C# 프로그래밍 가이드)를 참조하십시오.

특성은 소스 코드에서 액세스할 수 없으므로 자동으로 구현된 속성에는 허용되지만 지원 필드에는 허용되지 않습니다.속성의 지원 필드에 특성을 사용해야 하는 경우에는 일반 속성을 만듭니다.

참고 항목

참조

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

한정자(C# 참조)