2010-12-20 4 views
2

대리인의 접두사를 '정적'수정 자로 사용해야하는시기를 모르겠습니다.언제 delegate 앞에 "static"을 붙일 필요가 있습니까?

'정적'이 없으면 델리게이트는 여전히 일반적인 경우로 작동합니다.

내가 틀렸다면 수정하십시오.

정적 대리인이 필수 인 예제를 제공하십시오.

편집 1 : 나는

답변

3

대표자 형식을 static 수정 자로 선언 할 수 없습니다.

대리인 필드, 속성 및 이벤트는 정적으로 선언 될 수 있습니다. 다른 클래스 멤버와 마찬가지로이 클래스의 인스턴스가 아니라 클래스의 멤버가되므로 필드/속성/이벤트는 효과적으로 전역 적입니다.

각 인스턴스에 고유 한 구성원 복사본을 제공하는 대신 동일한 클래스의 모든 인스턴스간에 구성원을 공유하려는 경우에만이 설정이 필요합니다.

+0

대리자 형식은 다른 형식 (구조체 또는 클래스) 내에 정의 된 대리자와 반대로 전역 대리자를 의미합니까? 나는 용어와 혼동한다. – xport

+1

대리자 형식은 대리인의 정의를 의미합니다. ('public delegate void Foo (string bar);'와 유사합니다.) 이러한 선언이 어디에서 발생 하든지간에 중첩 된 유형은 정적 일 수 없듯이 정적 일 수 없습니다. (네, 중첩 된 클래스는 실제로는 정적 일 수 있지만 *는 완전히 다른 것을 의미합니다. *'정적 클래스 A '는'sealed 추상 클래스 A '와 같은 것을 의미합니다. 이것은'static '을 적용한 것과 같은 의미는 아닙니다. 회원.) – cdhowie

+0

확인. 너는 대답이 좋다! 감사. 우리가 미리 컴파일하려고 시도하지 않은 정적 위임을 정의 할 수 있다고 가정하여 실수를했습니다. – xport

1

:-) 정적 대리자를 만들 수 없기 때문에 나는이 질문을 폐쇄

static delegate void foo(int bar); 

, 우리는 예를 들어, 정적 대리자를 정의 할 수 있습니다 가정하여 실수를 모든 인스턴스가 동일한 대리자를 호출 할 때.

+0

죄송합니다. 제 질문에 실수했습니다. 정적 위임을 정의하는 것은 불가능합니다. 참여해 주셔서 감사합니다. – xport

+0

upvote 당신이 위임 인스턴스 대신 델리게이트 타입을 사용한다고 가정 할 수도 있기 때문입니다. – xport

+0

편집하기 전에 델리게이트 인스턴스에 대해 이야기하는 것처럼 들리지만 제 대답에는 '전화'라는 단어가 표시됩니다. +1 정직. – Xaqron

관련 문제