C# – 클래스 속성 & 자동속성
속성 (Property)
using System;
using System.Collections;
using System.Collections.Generic;
namespace AutoProperty
{
class Program
{
public static void Main()
{
List<Member> myMember = new List<Member>();
myMember.Add(new Member(“test1”, “KOR”, 14));
myMember.Add(new Member(“test2”, “USA”, 17));
myMember.Add(new Member(“test3”, “RUS”, 13));
foreach(var i in myMember)
{
Console.WriteLine(i.Name);
}
}
}
class Member
{
string name; // 멤버 변수선언
public Member( ) { }
public Member(string name, string addr, int age)
{
this.name = name; // this 접근가능( 멤버변수로 선언됨)
this.Addr = addr; // this 접근가능( 선언안됨 – 하단에 자동속성으로 구현 되어 자동 선언됨)
this.Age = age; // this. 접근가능(선언안됨 – 하단에 자동속성으로 구현 되어 자동 선언됨)
}
public string Name // 선언된 멤버변수의 setter , getter 속성 만들기
{
get { return this.name; }
private set { this.name = value; } // private : 객체에서 접근 불가(생성자 or 팩토리 패턴만 가능)
}
}
// [자동속성] – 구현을 get; set; 으로 축약
// string Addr; 멤벼변수 [자동생성]
// get; set; 은 get {return this.Addr;’} set {this.Addr = value} 와 같다
public string Addr
{
get; set;
}
// [자동속성] – 구현을 get; set; 으로 축약
// int Age; 멤벼변수 [자동생성]
// get; set; 은 get {return this.Age;’} set {this.Age = value} 와 같다
public int Age
{
get; set;
}