2012. 1. 16. 21:04
출처 : http://blog.naver.com/khagaa?Redirect=Log&logNo=30096456055
public, private, protected 이외에 internal이라는 접근 제어자가 있다. 액션스크립트에서도 본적이 있는데 거의 쓸 일이 없어서 써본적이 없는것 같다.
internal은 어셈블리를 기준으로 나뉜다고 한다. 어셈블리라는 것은 한 프로젝트가 뽑아내는 결과물이다. exe가 됐던 dll 이 됐던 한 프로젝트는 결과물을 뽑아내고 이 결과물 내부에서는 public 처럼 접근이 가능하다고 한다.
접근이 불가능한 경우를 예로 들면 dll 프로젝트에서 internal로 선언된 클래스가 있다고 치면 다른 exe프로젝트에서 dll 을 참조하여 사용한다고 할 때 어셈블리가 다르기 때문에 internal 클래스에 접근 하지 못한다.
여기서 중요한 문제점 하나는 dll 을 참조하여 상속을 받으려 할 때이다. internal로 선언된 클래스는 외부 프로젝트에서 접근을 할 수 없기 때문에 외부 프로젝트에서 dll 을 참조하여 상속 받는 경우에 대한 대비책이 필요할 수 있다. 그래서 나온것이 protected internal이다. 어셈블리가 다르더라도 상속을 받게 된다면 슈퍼클래스의 protected internal속성을 접근 가능하게 된다. [출처] [C#] internal, protected internal|작성자 아오 |
'강좌 > C#' 카테고리의 다른 글
Cross-thread operation not valid (0) | 2012.01.17 |
---|---|
Delegate (0) | 2012.01.17 |
Hashtable, HashSet<T>, Dictionary<TKey, TValue> (0) | 2012.01.16 |
Generic 컬렉션 - List, Dictionary, Queue, Stack (0) | 2012.01.16 |
DictionaryEntry 구조체 (0) | 2012.01.16 |