2012-10-07 1 views
1

안녕하세요 저는 최근에 C#을 배우기 시작했으며 속성과 관련하여 몇 가지 질문을했습니다.C#에서 속성을 사용하여 필드 가져 오기 및 설정

private int minAge 

public int MinAge 
{ 
    get { return this.minAge; } 
    set { this.minAge = Convert.ToInt16(TextBox1.Text); } //this is what I would like      to set the field to 
} 

의 내가 버튼을 가지고 있고 버튼 나는 그것이 MINAGE 필드를 설정할 필요가 있음을 누를 때와 가정 해 봅시다 :

private int minAge { get; set; } 

는이로 번역 하는가 : 의 내가이 문이 있다고 가정 해 봅시다 그 후에 데이터를 반환하십시오. 어떻게하면됩니까? 당신은 클래스 인스턴스를

YourClass objYourClass = new objYourClass; 
int minAge= objYourClass.MinAge; //To get 

objYourClass.MinAge =Convert.ToInt16(TextBox1.Text); //o set the property 

답변

1

방금하는 일은 공개 된 것입니다. 특성 :

public int minAge { get; set; } 

그런 다음 당신이 (암묵적으로) GET에 사용할 설정할 수 있습니다 당신이 할 수있는 속성을 검색하려면

minAge = 10; 

:

int age = minAge; //to return data 
minAge = Convert.ToInt32(TextBox1.Text); //to set the data 
+0

나는 당신이 말한 방식대로 해봤 다. public int minAge {get; 세트; }, minAge = 10; int a = minAge.get; 하지만 내가 saor int는 정의를 포함하지 않습니다 erorr 얻을 – user1525474

+0

@ user1525474 : 편집 된 코드 –

+0

okk 그래서 다른 말로하면 C# 자동으로 get 및 set 메서드를 호출합니까? 난 그냥이 권리를 우드너운 경우에 대한 확인이 필요합니다 – user1525474

2

당신은 클래스 내부에 속성을 정의하고 얻고 속성을 설정 :

나는이 시도했지만 작동하지 않는 것 해당 속성의 집합과 get은 밑줄 멤버와 동일한 유형입니다 ...

private int minAge 

public int MinAge 
{ 
    get { return this.minAge; } 
    set { this.minAge = value } //"value" is of type int 
} 
+0

hmmm 그래서 같은 클래스에서 사용한다고해도 객체를 선언했습니다. – user1525474

1

를 사용할 필요가

minAge.get //to return data 
    minAge.set = Convert.ToInt16(TextBox1.Text); //to set the data 
2

당신은을 통해 속성을 설정할 수 있습니다 :

int age = minAge; // retrieves the age via the minAge property 

이 속성에 정의 된 Class 내부해야 할 것이다 당신은 당신이 할 수있는 객체에 대한 MINAGE의 값으로 설정하려는 경우 :.

:

var obj = new YourClass(); 

obj.minAge = 100; // sets minAge to 100 

int minAge = obj.minAge; // Assigns the minAge variable to that of `obj` minAge value. 

차이

public int minAge { get; set; } 

사이를
private int minAge 

public int MinAge 
{ 
    get { return this.minAge; } 
    set { this.minAge = Convert.ToInt16(TextBox1.Text); } //this is what I would like      to set the field to 

}

는 MINAGE는 백킹 속성을 사용한다는 MinAge은 .NET Framework (4+)의 최신 버전 중 하나를 사용하는 경우 더 이상 필요하지 않습니다. 당신은 C#에서 속성을 설정하면

+0

그래서 다른 말로하면 minAge = 10으로 설정하고 int age = minAge C#이 자동으로 속성을 가져오고 설정합니다. – user1525474

1

당신은 get 및 set 접근하지 않아도 자동으로 이루어집니다 :

private int _minAge 

public int MinAge 
{ 
    get { return _minAge; } 
    set { _minAge = value; } 
} 

또는 경우를 :이 같은 속성을 만들 수 있습니다

// Get 
int age = this.MinAge; 

// Set 
this.MinAge = Convert.ToInt16(TextBox1.Text); 

.NET 3을 사용하십시오.5 이상을 사용하면 간단하게 사용할 수 있습니다.

public int MinAge 
{ 
    get; 
    set; 
} 

언더 유형은 컴파일러에서 자동으로 생성됩니다.

1

사실

public int MinAge { get; set; } 

는 C#에서이라고

private int minAge_backfield; 

public int MinAge 
{ 
get { return minAge__backingField;} 
set { minAge__backingField = value;} 
} 

자동 속성처럼 뭔가에 컴파일러에 의해 번역되어 그 사용

var val = MinAge; 

또는

같은 간단한
MinAge = 10; 

나는 이것에 blog post을 썼다.

관련 문제