C#에는 프로퍼티라는 개념이 새로 생겼습니다.
C++에서는 private나 protected 상태인 멤버에 대한 접근을 위해서 Get/Set으로 시작하는 함수를 만들어
줬습니다.
class Test
{
public:
std::string GetName()
{
return _name;
}
void SetName( std::string name )
{
_name = name;
}
private:
std::string _name;
}
이렇게 메소드를 만들어 줘야지만 데이터에 접근해서 값을 저장하거나 값을 가져올 수 있습니다.
c#도 똑같은 방법을 사용해서 멤버에 접근할 수 있습니다.
하지만, 좀더 진보된 언어 답계 컴파일러가 이런 일을 대신할 수 있습니다.
c#에서 지원하는 프로퍼티(Property)라는 멤버를 사용하면 컴파일러가 Get/Set 메서드의 쌍을 만들어 줍니다.지정자 타입 이름
{
get { return 값; }
set { 값 변경; }
}
get 블록에서는 프로퍼티의 값을 읽어서 리턴하고,
set 블록에서는 값을 변경하는 코드를 작성하면 됩니다.
컴파일러는 프로퍼티 참조문에 대해 get,set 블록을 자동으로 호출하는데 프로퍼티를 읽으면 get 접근자를 호출하고, 프로퍼티에 값을 대입하면 set 접근자를 호출니다.
프로퍼티에 대입되는 값은 value라는 암시적 인수로 set 접근자에게 전달됩니다.
class Test
{
public string Name
{
get { return _name; }
set { _name = value; }
}
private string _name;
}
class C_Sharp_Test
{
static void Main()
{
Test test = new Test();
test.Name = "Test_Name";
Console.WriteLine( "name = {0} ", test.Name );
}
}
프로퍼티를 이용하면 멤버에 대해 쉽게 접근을 할 수 있습니다. 또한, 간편한 연산을 할 수 있습니다.
int 형 변수의 값을 증가시키기 위해서는 값을 가져(get)와서 1을 증가 시킨후 값을 저장(set)해야 하는데,
프로퍼티를 이용하면 좀더 간단하게 계산을 할 수 있습니다.
즉, 프로퍼티에 그냥 1을 증가 시켜서 저장하면 됩니다.Time.Val = Time.Val + 1;
이런 식으로 사용이 가능합니다.
Recent Comments