C# 배우고 있는데 아래 같은 상황에 프로퍼티와 변수의 차이가 뭔지 모르겠습니다.
예를 들어서 프로퍼티가
private string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
처럼 닫혀진 한정자가 있는 변수를 참조하기 위해서 사용되지 않습니까
그런데 이 프로퍼티를 필드까지 생략해서 아래와 같이 쓸 수 있다 배워쑵니다
public string Name
{
get; set;
}
아니 근데 말입니다 이런식이면
그냥 Name이라는 이름의 public 한정자 string 변수가 만들어지는 것과 비슷하지 않습니까?
물론 프로퍼티를 선언한 클래스에서는 변수처럼 사용하지는 못하지만
결국 다른 클래스에서는 아래와 같이 쓸 수 있으니까요
class Project
{
public string name;
public string Name;
{
get; set;
}
}
class MainClass
{
static void Main(string[] args)
{
Project obj = new Project();
obj.name = "Kim"
obj.Name = "Park"
}
}
이렇게요!
Name이던 name이던 값을 읽고 쓸 수 있는 건 마찬가지인데
대체 위 코드에서 프로퍼티 Name과 변수 name의 결정적 차이가 뭔지 잘 모르겠습니다
자세한 설명 감사합니다 역시 공부를 더 많이 해야겠네요 ㅜㅜ
캡슐화임 너가 프로퍼티를 쓸땐 그게 자동구현인지 아닌지는 중요하지 않음 그냥 그 객체가 그 프로퍼티를 가지고 있다는게 중요한거지
반면 필드는 용도가 한정됨