English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 프로퍼티(Property)

로 불립니다. 속성(Property) 는 클래스(class), 구조(structure), 인터페이스(interface)의 명명된 멤버입니다. 클래스나 구조 내의 멤버 변수나 메서드는필드(Field) 접근자(accessors) 프라이빗 필드의 값을 읽고 쓸 수 있게 합니다. 속성(Property)은 필드(Field)의 확장으로, 동일한 문법으로 접근할 수 있습니다. 그들은

속성(Property)은 저장 위치를 결정하지 않습니다. 대신, 그 값을 읽고 쓸 수 있거나 계산할 수 있는 접근자(accessors)

예를 들어, Student라는 이름의 클래스가 age, name, code와 같은 프라이빗 필드를 가지고 있습니다. 우리는 이 필드에 접근할 수 없지만, 이 프라이빗 필드에 접근할 수 있는 속성을 가질 수 있습니다.

접근자(Accessors)

속성(Property)의접근자(accessor)속성에 대한 접근자(accessor)는 읽기(읽거나 계산)나 쓰기(쓰기)를 돕는 실행 가능한 문장을 포함할 수 있습니다. 접근자(accessor) 선언은 get 접근자, set 접근자, 또는 둘 다를 포함할 수 있습니다. 예를 들어:

// string형의 Code 속성을 선언합니다.
public string Code
{
   get
   {
      return code;
   }
   set
   {
      code = value;
   }
}
// string형의 Name 속성을 선언합니다.
public string Name
{
   get
   {
     return name;
   }
   set
   {
     name = value;
   }
}
// int형의 Age 속성을 선언합니다.
public int Age
{ 
   get
   {
      return age;
   }
   set
   {
      age = value;
   }
}

온라인 예제

다음 예제는 속성(Property)의 사용법을 보여줍니다:

using System;
namespace w3codebox
{
   class Student
   {
      private string code = \
      private string name = \
      private int age = 0;
      // string형의 Code 속성을 선언합니다.
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // string형의 Name 속성을 선언합니다.
      public string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }
      // int형의 Age 속성을 선언합니다.
      public int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      public override string ToString()
      {
         return \ + Code +", Name = \ + Name + ", Age = \ + Age;
      }
    }
    class ExampleDemo
    {
      public static void Main()
      {
         // 새로운 Student 객체를 생성합니다.
         Student s = new Student();
            
         // student의 code, name, age를 설정합니다
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         // 연령 증가
         s.Age += 1;
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
       }
   }
}

위의 코드가 컴파일되고 실행될 때, 다음과 같은 결과가 생성됩니다:

학생 정보: Code = 001, Name = Zara, Age = 9
학생 정보: Code = 001, Name = Zara, Age = 10

추상 속성(Abstract Properties)

추상 클래스는 추상 속성을 가질 수 있으며, 이러한 속성은 자식 클래스에서 구현되어야 합니다. 다음 프로그램은 이 점을 설명합니다:

using System;
namespace w3codebox
{
   public abstract class Person
   {
      public abstract string Name
      {
         get;
         set;
      }
      public abstract int Age
      {
         get;
         set;
      }
   }
   class Student : Person
   {
      private string code = \
      private string name = \
      private int age = 0;
      // string형의 Code 속성을 선언합니다.
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // string형의 Name 속성을 선언합니다.
      public override string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }
      // int형의 Age 속성을 선언합니다.
      public override int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      public override string ToString()
      {
         return \ + Code +", Name = \ + Name + ", Age = \ + Age;
      }
   }
   class ExampleDemo
   {
      public static void Main()
      {
         // 새로운 Student 객체를 생성합니다.
         Student s = new Student();
            
         // student의 code, name, age를 설정합니다
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("학생 정보:- {0}", s);
         // 연령 증가
         s.Age += 1;
         Console.WriteLine("학생 정보:- {0}", s);
         Console.ReadKey();
       }
   }
}

위의 코드가 컴파일되고 실행될 때, 다음과 같은 결과가 생성됩니다:

학생 정보: Code = 001, Name = Zara, Age = 9
학생 정보: Code = 001, Name = Zara, Age = 10