2013-11-01 4 views
-6

public과 같은 액세스 한정자와 virtual 같은 키워드는 클래스 또는 속성의 동작을 사용자 정의합니다. 따라서 그들의 행동은 속성과 유사합니다. 그러나 어떻게 내부적으로 작동합니까? 그들은 .Net 클래스 라이브러리에서 모든 코드 또는 속성을 호출합니까?C#의 수정 자 기본 구조 및 동작

+6

확실하지 않은 질문이 있습니까 ?? 그들이하는 일이나 코드 라이브러리가 어디에 정의되어 있는지 알고 싶습니까? –

+0

Google? 나는 당신이 그와 같은 대답을 매우 빨리 발견 할 수 있다고 생각한다. –

+0

그런 다음 답을 찾아 게시 :-) – Soeholm

답변

4

아니요, publicaccess modifier입니다. Virtual은 올바르게 표시 한 키워드입니다. 특히 어느 .NET 라이브러리도 지칭하지는 않습니다. 그들은 어떤 속성도 언급하지 않으며 그 속성에 대해 속성이라고 부를 수는 없습니다. Attributes은 분명히 다릅니다.

내부적으로 어떻게 작동합니까?

위에 제공된 링크를 참조하십시오.

그들은 .Net 클래스 라이브러리의 모든 코드 또는 속성을 호출합니까?

아니요, 이미 명시된 바와 같이 특성과는 분명히 다르며 .NET 라이브러리와 관련이 없습니다.

3

아니요, 액세스 가능성 및 상속 측면에서 메서드를 처리하는 방법을 C# 컴파일러에 각각 알려줍니다.

그들은 .Net 클래스 라이브러리와 아무 관련이 없습니다. 또한 "attribute"라는 단어는 C#의 맥락에서 매우 특정한 의미를 지니 며이 키워드와 아무 관련이 없습니다.

1

public 및 virtual은 기본적으로 예약어로 특정 의미를 갖습니다. 컴파일러가 예약어를 식별하면 디자인 아키텍처에서 정의 된 필요한 동작을 취합니다. 사용자가 예약어를 식별자로 선언 할 수 없습니다. 나는 그들이 데이터 형과 같은 것을 참조하지 않을 것이라고 생각한다. (데이터 형은 구조체로 설계된대로 내부적으로 참조된다.)

1

이들은 언어의 일부이다. 이들은 keywords으로 알려져 있으며 언어에 의해 예약되어 있고 컴파일러에서 구문에 따라 명시 적으로 파싱됩니다. 이에

User public = new User(); 

내가 C#을 구문에 의해 불법 변수 이름으로 "공개"키워드를 사용 : 당신은 같은 것을 할 수 없도록 그들은, 예약되어 있습니다. 키워드가 부적절하게 사용 된 것으로 판명되면 컴파일러는 코드를 컴파일하지 않습니다. (종종 IDE에서 컴파일러는 오류가 발생해도 호출되지 않습니다.)

주목할 점은 연산자가 아니라는 것입니다. (예 : + - =). 운영자는 많은 경우 오버로드 될 수 있습니다 (데이터를 변경하는 방법을 정의 할 수 있음). C#에서는 (다른 언어를 보증 할 수 없음) 키워드를 오버로드 할 수 없습니다.

프로그래밍 언어의 keyword은 특정 컨텍스트 내에서 특정 코드 조각을 컴파일러에 알리는 데 자주 사용됩니다. 특정 키워드를 사용할 때의 영향은 다른 키워드보다 더 분명합니다. 이 코드가하는 일에 대한 힌트처럼 (당신의 경우, 보호 수준은 무엇인가). 각 keyword에는 자신이하는 일에 대한 자체 규칙이 있습니다. 예를 들어 LINQ의 연산자는 as, where, select과 같이 public, protectedprivate과 같이 사용할 수 없습니다.C#에서 키워드에 대한 자세한 내용은

, 다음과 같은 체크 아웃 :

http://msdn.microsoft.com/en-us/library/x53a06bb.aspx

1

공공 키워드가 액세스 한정자로 알려진 컴파일러에 지시합니다. 즉, 유형이나 구성원이 공개적으로 액세스 할 수 있도록하려는 것입니다.

Microsoft는 아주 잘 여기 설명 :

http://msdn.microsoft.com/en-us/library/yzh058ae(v=vs.80).aspx

가상 키워드는 컴파일러 다른 명령입니다. 다른 종류의 보다 public입니다. 그것은 액세스와 관련이 없습니다. 대신 파생 클래스에서 주어진 메서드/속성의 비헤이비어를 재정의 할 수 있음을 나타냅니다.

Microsoft는 여기에 좋은 설명이 :

http://msdn.microsoft.com/en-us/library/9fkccyh4(v=vs.71).ASPX

나도 그들 에 어떤 식 으로든 관련의 완전히 다른 개념입니다을 속성하지합니다. 그들은 여기에 설명되어 있습니다 :

http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx