class MyClass
{
private int myField;
public int GetmyField(){ return myField;}
public void SetmyField(int newValue){ myField = newValue;};
}
MyClass obj = new MyClass();
obj.SetMyField(3);
Console.WriteLine(obj.GetMyField());
이것은 정석이긴 하지만 C#에는 우아한 장치가 있음. 따라서 이런 방법은 지양해야함
Class 클래스이름
{
데이터형식 필드이름;
접근한정자 데이터형식 프로퍼티이름
{
get
{
return 필드이름;
}
set
{
필드이름 = value;
}
}
}
get 접근자를 필드로부터 값을 읽어오고 set은 필드에 값을 할당함.
위코드를 아래와 같이 변경할 수 있음
class MyClass
{
private int myField;
public int MyField
{
public int Get{ return myField;}
public void Set{ myField = value;}; // 만약 set 메소드를 구현하지 않으면 읽기전용이 된다. , 즉 Get만 사용 가능해짐}
}
MyClass obj = new MyClass();
obj.MyField =3;
Console.WriteLine(obj.MyField);
자동구현 프로퍼티.
만약 메소드가 겹친다면 많은 코드 중복이 있을 수 있다.
예를 들어 name과 PhoneNumber는 둘다 Get 과 Set이 필요하다.
ex) public string Name{ get{return name;} set{name = value;}}
public string Phonenumber{ get{return phoneNumber;} set {phoneNumber = value;}}
이럴경우 다음과 같이 구현이 가능하다.
public string Name{ get; set;}
public string PhoneNumber{ get; set;}
'컴퓨터 프로그래밍' 카테고리의 다른 글
c#강좌 람다식 (0) | 2019.06.12 |
---|---|
c# 강좌 델리게이트 (0) | 2019.06.11 |
C# 강좌 추상클래스 (0) | 2019.06.07 |
c# 강좌 업캐스팅과 다운캐스팅 (0) | 2019.06.07 |
c# 강좌 인터페이스 (0) | 2019.06.07 |