[C#] 필드 요약

3555 단어 C#
최첨단:
필드 (field) 는 하나의 값 형식의 실례나 인용 형식의 인용을 수용하는 데이터 구성원이다.
본문:
CLR 지원 유형(정적) 필드 및 인스턴스(비정적) 필드.유형 필드의 경우 필드 데이터를 수용하는 데 사용되는 동적 메모리는 유형 대상에 분배되고 유형 대상은 유형이 AppDomain에 기재될 때 만들어진다.AppDomain에 유형을 로드할 때는 언제입니까?일반적으로 이 유형의 모든 방법을 참조하여 JIT 컴파일을 처음 수행할 때입니다.실례 필드에 대해 필드 데이터를 수용하는 메모리는 유형의 실례를 구성할 때 분배된다.
필드는 동적 메모리에 저장되어 있기 때문에, 그들의 값은 실행할 때만 얻을 수 있다.필드는 상수에 존재하는 버전 제어 문제도 해결했다.그 밖에 필드는 모든 데이터 형식이 될 수 있으며, 상수처럼 컴파일러가 내장한 기원 형식에만 국한될 필요가 없다.그럼 기원 유형은 무엇입니까 (int, unit 등등)?
기원 형식: 컴파일러가 직접 지원하는 데이터 형식입니다.만약 기원 유형이 없다면, 우리는 정수를 성명할 때 반드시 이렇게 해야 한다
Int32 a=new Int32;

다행히도 기원 유형이 생겨서 우리는 바로 아래의 방법을 사용할 수 있다. 즉, 우리가 프로그래밍할 때 자주 사용하는 것이다.
int a=0;

또한string과String은 처음에 저는 이 두 가지 유형에 대해 곤혹스러웠습니다. 도대체 언제 어떤 유형을 사용하는지 궁금해요. 그런데 기원 유형의 설명을 보면 C#의string이 String(FCL 유형)에 직접 비치기 때문에 둘 다 차이가 없고 사용할 수 있다는 것을 알게 될 것입니다.
 
CLR은 readonly 필드와 read, write 필드를 지원합니다.대부분의 필드는read와 write 필드입니다. 이것은 코드가 실행되는 과정에서 필드 값이 여러 번 바뀔 수 있음을 의미합니다.그러나readonly 필드는 하나의 구조기 방법에서만 쓸 수 있습니다.(이 구조기 방법은 한 번만 호출할 수 있으며 대상이 처음 만들어졌을 때) 컴파일러와 검증 메커니즘은readonly 필드가 구조기 이외의 방법으로 쓰이지 않도록 합니다.하지만 반사로 수정할 수 있다.
현재 버전 제어 문제를 수정하기 위해 정적 Readonly 필드를 사용합니다.
1 public sealed class someType

2 {

3       public static readonly int MaxList=50;   

4 }

이것은 유일하게 수정해야 하는 것이기 때문에 프로그램의 코드를 수정할 필요가 없다.그러나 새로운 행동을 관찰하기 위해서, 프로그램의Main 방법이 실행될 때, CLR은 DLL 프로그램 집합에 불러오고, 그에게 분배된 동적 메모리에서 MaxList 필드의 값을 50으로 추출해야 한다.
DLL 프로그램 집합의 개발자가 50을 100으로 변경하고 프로그램 집합을 다시 생성한다고 가정합니다.프로그램 코드가 다시 실행될 때, 그는 자동으로 필드의 새 값 100을 추출할 것이다. 이런 상황에서 프로그램은 다시 생성할 필요가 없고, 그는 직접 실행할 수 있다.주의해야 할 것은 현재 DLL 프로그램 집합의 새 버전이 강제로 명명되지 않았다고 가정하고 있다는 것이다.
다음은 형식 자체와 관련된readonly 정적 필드와 읽기와 쓰기 필드를 어떻게 정의하는지 보여 줍니다.read/write 정적 필드도 정의했습니다.
 class ServiceLocator

    {

        // , , 

        public static readonly Random random = new Random();



        private static int numberwrites = 0;



        public readonly string PathName = "Unity";



        private FileStream fs;



        public ServiceLocator(string pathname)

        {

            // 

            this.PathName = pathname;

        }



        public string Do()

        {

            numberwrites += 1;

            return PathName;

        }

    }


상기 코드에서 많은 필드는 내연 초기화(코드에서 직접 값을 부여하여 초기화하는 것이지 구조 함수를 통해 초기화하는 것이 아니다)이다. C#는 이런 방법을 사용하여 클래스의 상수, 읽기와 쓰기 필드, 읽기 전용 필드를 초기화할 수 있다.C#은 실제로 구조 함수에서 필드를 초기화하는데 필드의 내연 초기화는 문법상의 간소화일 뿐이다.
어떤 필드가 인용 형식이고, 이 필드가 읽기 전용으로 성명될 때, 인용의 대상이 아니라 인용 자체를 바꿀 수 없습니다. 즉, 무더기에 분배된 값입니다.
  
  public static readonly char[] Inva = new char[] { 'a','B','C'};



        public void Test()

        { 

            Inva[0]='v';// , 

            Inva = new char[] { 'x','y','z'};// 

        }


좋은 웹페이지 즐겨찾기