-
getter setter@ 16. 1 ~ 17. 1/C# 2016. 11. 18. 02:49
위의 코드를 보시면, Field의 값을 얻어오거나 수정할때 GetField, SetField 메소드를 이용하죠? 그런데 C# 에서는 프로퍼티라는 기능을 제공하여 상당히 간단히 구현할 수 있습니다. 프로퍼티에는 get 속성 접근자와, set 접근자가 있습니다. 아래는 프로퍼티 기본 선언 형식입니다.
12345678910111213141516class
클래스명
{
데이터타입 필드명;
접근한정자 데이터타입 프로퍼티명
{
get
{
return
필드명;
}
set
{
필드명 = value;
}
}
}
...
여기서 보이는 get 속성 접근자는 위에서 구현한 GetField 메소드를 대체합니다. 즉, 속성 값을 반환하는데 사용되며, set 접근자는 SetField 메소드를 대체, 새 값을 할당하는데 사용합니다. 살펴보니, 필드와 메소드 기능을 모두 담당하죠? 한가지 더 알아두실 점이 있다면 굳이 get, set를 다 써야할 필요는 없고 어느 한가지만 사용하여도 문제가 없습니다. get 접근자만을 사용하면 읽어올 수 밖에 없고, set 접근자만을 사용하면 쓸수 밖에 없습니다. get과 set을 둘다 쓰면 읽고 쓸수 있는거죠. 그럼 이제, 예제를 하나 보도록 합시다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
namespace
ConsoleApplication45
{
class
Student
{
private
string
name;
private
int
age;
public
string
Name
{
get
{
return
name;
}
set
{
if
(value.Length > 3)
Console.WriteLine(
"이름은 3자 이상 넘을 수 없습니다."
);
else
name = value;
}
}
public
int
Age
{
get
{
return
age;
}
set
{
age = value;
}
}
}
class
Program
{
static
void
Main(
string
[] args)
{
Student student =
new
Student();
student.Age = 13;
student.Name =
"로버트 할리"
;
student.Name =
"김철수"
;
Console.WriteLine(
"저의 이름은 "
+ student.Name +
"이고, 나이는 "
+ student.Age +
"살 입니다."
);
}
}
}
'@ 16. 1 ~ 17. 1 > C#' 카테고리의 다른 글
object 란? boxing unboxing! (0) 2016.11.18 참조형식과 값형식 차이, 함수 매개변수(in, out, ref) (0) 2016.11.18 C# 시작2 (0) 2016.11.16 C# 시작 (0) 2016.11.16 C# 3교시... (0) 2014.07.27