C#-get 및 set 메서드
2681 단어 C#학습
다음과 같은 두 가지 유형의 개인이 있습니다.
public class person
{
public string name;
}
public class person
{
public string Name{set;get;}
}
첫 번째 유형의name 속성은 봉인되지 않았습니다. 그name 속성은public 키워드를 통해 시스템의 다른 클래스에 직접 노출되었고 두 번째 유형의name 속성은 get set 키워드를 통해 봉인되었습니다. get과 set은 각각 읽을 수 있고 쓸 수 있으며 다음과 같은 코드에 해당합니다.
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
간단하게 차이점을 말하자면 첫 번째'person'이라는 종류를 실례화할 때 시스템은 메모리 공간을 분배할 때name 속성에 대해 메모리를 직접 분배하고 그 다음name 속성에 대한 조작도 메모리에서name 속성이 있는 이 블록을 직접 조작한다.두 번째'사람'형식을 실례화할 때 시스템은name이라는 private의 개인 메모리 공간을 먼저 분배하고 그 다음에 읽기와 쓰기는 Name이라는 퍼블릭과 바늘과 유사한 것을 통해name와 연결되어 봉인된 목적을 달성하며 get과 set 키워드를 통해 읽을 수 있는지 쓸 수 있는지 제어할 수 있다.후자를 추천합니다. 포장의 장점은 관련 문서를 참고하여 더 이상 누술하지 않겠습니다~
get과 set의 역할은 읽기와 쓰기를 제어하는 것 외에 다른 역할도 있다. 예를 들어 내가 Name에 값을 부여할 때 논리적 판단을 먼저 하려고 하면 다음과 같다.
private string name;
public string Name
{
get { return name; }
set
{
name = String.IsNullOrEmpty(value) ? " " : value;
}
}
다시 한 번 예를 들어 설명한다.
가령 같은 은행이라면 예금도 할 수 있고 돈도 찾을 수 있다
Private Money;
Private class bank()
{
get
{
return Money;
}
Set
{
Money=value;
}
}
Money는 은행 안의 현금인출기와 같아서 안에 있는 Money를 볼 수 없지만 set(저금), get(인출)을 사용할 수 있다.Money는 클래스에 분리된 개인 필드로 클래스 이외의 프로그램은 직접 접근할 수 없습니다.C#에서 get, set 사용법에서 클래스의 set과 get 구성원은 외부 프로그램이 클래스 내부 속성에 접근하는 유일한 방법이다. 예를 들어 은행에 가서 돈을 찾으면 은행의 금고에서 직접 돈을 받지 못하고 은행 영업자가 돈을 꺼내서 너에게 주는 것이다.
속성은 호출자가 보기에 일반적인 변수와 같지만, 클래스의 디자이너로서, 당신은 속성을 이용하여 클래스의 일부 필드를 숨길 수 있으며, 외부는 속성을 통해서만 당신의 필드에 접근할 수 있다. 당신은 속성을 통해 외부에서 당신의 필드에 대한 저장을 제한할 수 있다. get, set을 이용해라.사용자가 당신의 필드를 마음대로 액세스할 수 있도록 하려면 get, set을 실현하십시오.사용자가 필드만 읽을 수 있도록 get만 실행하기;사용자가 글을 쓸 수 있도록 set만 실행합니다.또한 set과 get에서 사용자가 전달한 값을 검증하여 필드에 정확한 값이 포함되어 있는지 확인할 수 있습니다.
Private int a;
Public int index
{
get
{
return a;
}
set
{
If (value>0)
a=value;
else
a=0;
}
}
get, set 사용법 중 하나는 구성 요소나 클래스 내부를 숨기는 진짜 구성원임을 알 수 있다.
둘째, 제약을 세우는 데 쓰인다. 예를 들어'나는 있어도 너는 없다'는 제약을 실현한다.
셋째, 속성 변화 이벤트에 응답하는 데 사용됩니다. 속성 변화가 어떤 일을 할 때 set 방법에 쓰면 됩니다.
속성의 값을 읽거나 쓰기를 원할 때, 액세스 로고는 실현된 문장을 제한합니다.속성의 값을 읽는 데 사용할 접근 로고는 키워드 get이고, 속성을 수정할 값의 읽기 로고는 set입니다.