2011-03-05 4 views
2

가능한 중복은 : 프로그램에서
When do you use the “this” keyword?장점과 C#에서이 키워드를 사용하는 단점

당신은이 키워드를 사용할 수 있습니다

this.Textbox 

하거나

Textbox 

모범 사례는 무엇입니까?

내가 볼 수있는 몇 가지 이점은 이것을 사용하면 intellisense에서보다 쉽게보고 속성임을 쉽게 알 수 있습니다.

현재 저는 이것을 사용하지 않습니다 ... 나는 그 기사가 모든 참고 문헌을 삭제 한 어떤 기사를 읽었지만 그 이유를 기억하지 못합니다.

이 키워드를 사용하는 것에 대한 장단점은 무엇입니까?

+0

여기에 답변도 관련이 있습니다 : http://stackoverflow.com/questions/1105386/overhead-when-using-keyword-this –

+0

이것은 대 찬성 질문입니다. 그것은 중복이 아닙니다. – zachary

+0

제목이 잘못되었지만 위와 중복되지는 않습니다. – erikkallen

답변

3

this을 체계적으로 사용하면 사실 this 회원을 원할 때 로컬 변수를 참조하는 함정에 빠지지 않는다는 것을 의미합니다.

단점 : this을 사용하면 코드가 더욱 장황 해집니다.

정말 개인적인 취향입니다.

0

유일한 단점은 타이핑이 더 많다는 것입니다. this (특히 일관되게)을 사용하면 예를 들어 속성을 사용할 때 매개 변수를 사용하지 못하게 할 수 있습니다 (예 :. 방법 f(Textbox textbox) => {textbox = textbox} 당신이 말하려고했을 때 this.Textbox = textbox. 그것을 사용하는 것은 일관되게 그것을 불가능하게 할뿐만 아니라 가능할 때 그것을 두드러지게 만듭니다.

0

입력이 적고 혼란이 적기 때문에 this.을 사용하지 않는 것이 좋습니다. 식별자가 불분명하기 때문에 필요할 때만 사용하십시오.

나는 회원 액세스가 코브라에서 처리되는 방식을 좋아합니다. 접두어 앞에 . (또는 비공개 용 _)이 필요합니다. 따라서 .member=parameter을 사용하십시오. 첫 번째 변수는 분명히 멤버이고 두 번째 변수는 지역 변수입니다. 자세한 정보 표시없이 모호성을 제거하는 우아한 방법.

+1

왜? 우리의 전체 개발 팀 (나를 포함해서)도 그것을 제외합니다. 이것은 단지 일어난 코딩 표준으로 시행되지 않았습니다.어쩌면 밑줄 _privatemember의 사용으로 인해 – zachary

+0

게으른. 또한 접두어로 된 private 멤버를 사용하기 때문에 매개 변수와 멤버를 섞어도 위험이 없습니다. – CodesInChaos

0

정말 중요한 부분입니다. 때때로 당신은 다음과 같은 경우에 따라 this 키워드를 사용해야합니다 :

private string Foo; 
public void Bar(string Foo) 
{ 
    this.Foo = Foo; 
} 

this을 갖는 매개 변수가 단지 자체에 자신을 설정하는 버그가 발생하지 않습니다. 그것은 덜 장황하다. 그러나 어떤 사람들은 그것이 덜 명확하기 때문에 (그러므로 선호도) 말할지도 모른다.

+0

이와 같은 매개 변수 모호성은 문제를 묻는 것입니다. .NET 용 스타일 지침은 매개 변수에 대해 camelCase를 제안합니다. –

+0

나는 동의한다, 나는 그것을지지하지 않고 있었다. 단지 그것이 스타일 선호가 아니라 실제로 필요한 경우가 있음을 지적했다. – vcsjones

관련 문제