[CLR via C#] 7장 - 상수 및 필드
( )
부터 프로그램 집합
에 저장됩니다.상수 값은 변하지 않기 때문에 상수는 항상 유형 정의의 일부분으로 간주된다. 즉, 상수는 항상 실례 구성원이 아니라 정적 구성원으로 간주된다.
2. CLR 지원
( )
및 ( )
유형 필드: 필드 데이터를 수용하는 데 필요한 동적 메모리는 유형 대상에 분배되고, 유형 대상은 유형이 하나AppDomain
에 불러올 때 생성됩니다. 그러면 언제 유형을 하나AppDomain
에 불러올까요?이것은 보통 이 유형의 어떤 방법을 인용해서 처음 JIT
컴파일할 때이다.실례 필드: 필드 데이터를 수용하는 데 필요한 동적 메모리는 유형의 실례를 구성할 때 분배됩니다.3. 필드 수정자
CLR 용어
C# 용어
설명
Static
static
이런 필드는 유형 상태의 일부분이지 대상 상태의 일부분이 아니다
Instance
(기본값)
이런 필드는 유형의 실례와 연결되는 것이지 유형 자체와 연결되는 것이 아니다
InitOnly
readonly
이런 필드는 하나의 구조기 방법의 코드로만 쓸 수 있다.
, readonly
Volatile
volatile
컴파일러, CLR, 하드웨어는 이 필드에 접근하는 코드에 대해 '라인이 안전하지 않다' 는 최적화 조치를 실행하지 않습니다.모든 참조 유형, Single, Boolean, Byte, SByte, Int16, UInt16, Int32, UInt32, Char, 그리고 기본 유형은 Byte, SByte, Int16, UInt36, Int32 또는 UInt32의 모든 열거 유형입니다.
4.readonly가 어떤 인용 유형의 필드를 수식할 때 변경할 수 없는 것은 인용이지 필드 인용의 대상이 아니다.
public sealed class AType{
// InvalidChars
public static readonly char[] InvalidChars = new char[] {
'A', 'B', 'C' };
}
public sealed class AnotherType{
public static void M(){
// , ,
AType.InvalidChars[0] = 'X';
AType.InvalidChars[1] = 'Y';
AType.InvalidChars[2] = 'Z';
//
AType.InvalidChars = new char[] {
'X', 'Y', 'Z' }; // Error
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로그'메타프로그램 루비 버전 2'3장 읽기동적 방법 Object#send 호출 방법은 약간 메모와 Object#send obj.send(:my_method, 3) Object#send를 사용하면 어떤 방법으로든 호출할 수 있습니다. privete 방법을 호...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.