C\#clr 노트 요약 복습
2:CLR 에서 모든 오 류 는 이상 을 통 해 보 고 됩 니 다.
3:스마트 감지 기능 은 주로 메타 데 이 터 를 분석 하여 이 루어 진다.
4:서로 다른 언어 간 의 편리 한 전환 을 허용 하고 각종 언어 를 긴밀 하 게 통합 하 는 것 이 CLR 의 뛰어난 특성 입 니 다.
5:하나의 방법 은 처음 실 행 될 때 만 jit 로 인해 일정한 성능 손실 을 초래 할 수 있 으 며,이후 에 이 방법 에 대한 호출 은 모두 로 컬 코드 형식 으로 전속력으로 실 행 됩 니 다.
6:방법 서명 은 매개 변수의 수량(및 순서),매개 변수의 유형 을 지정 합 니 다.방법 에 반환 값 이 있 는 지,반환 값 이 있 으 면 반환 값 의 종 류 를 지정 해 야 합 니 다.
7:어떤 언어 를 사용 하 든 유형의 행 위 는 완전히 일치 합 니 다.유형의 행 위 는 최종 적 으로 CLR 의 CTS 에 의 해 정의 되 기 때 문 입 니 다.
8:CLS 의 호환성 을 검사 하기 위해[assembly:CLSCompliant(true)]를 사용 합 니 다.
9:같은 프로그램 에 집중 되 어 있 습 니 다.유형 은 기본적으로 internal 입 니 다.마이크로소프트 가 항상 공개 정도 가 가장 낮은 키 워드 를 선택 하 는 원칙 이 있 습 니 다.예 를 들 어 기본 private 입 니 다.
10:CLR 의 한 유형의 모든 구성원 은 하나의 필드 나 방법 입 니 다.
11:응답 파일 csc.rsp 의 역할,/noconfig 스위치 를 사용 하여 부분 및 전역 csc.rsp 를 무시 합 니 다.
12:메타 데이터:바 이 너 리 데이터 블록 은 몇 장의 표 로 구성 되 어 있 습 니 다.3 가지 유형 으로 나 눌 수 있 습 니 다.a:정의 표,b:목록 표,c:참조 표.
13:하나의 위탁 관리 PE 파일 은 4 개 부분 으로 구성 되 어 있 으 며,PE 32(+)헤드,CLR 헤드,메타 데이터,IL.
14:프로그램 집합 은 하나 이상 의 형식 으로 파일 과 자원 파일 을 정의 하 는 집합 입 니 다.
15:프로그램 집합 은 재 활용 가능 한 형식의 논리 와 물 리 를 분리 할 수 있 습 니 다.프로그램 집합 이 사용 되 지 않 으 면 영원히 다운로드 되 지 않 습 니 다.
16:새로운 프로그램 집합 을 만 들 기 위해 서 는 인용 프로그램 집합 에서 온 모든 파일 이 존재 해 야 하지만 프로그램 을 실행 할 때 인용 한 프로그램 집합 에 있 는 모든 파일 이 반드시 존재 하 는 것 은 아 닙 니 다.
17:프로그램 집합의 버 전 번호 형식:주 버 전 번호,부 버 전 번호,Build 번호,Revision 번호.
18:[assembly:Assembly Culture(de-ch)]프로그램 집합 언어 문 화 를 스위스 독일어 로 설정 합 니 다.
19:msi 파일 을 사용 하면'설치 해 야 합 니 다'를 실현 할 수 있 습 니 다.
20:약 한 이름 의 프로그램 집합 이 문제 가 될 수 있 는 것 은 몇 개의 서로 다른 프로그램 집합 이 같은 약 한 이름 을 가 질 수 있 기 때 문 입 니 다.
21:"Dll Hell"원본:공 유 된 Dll 은 모두 System 32 디 렉 터 리 에 복 사 됩 니 다.약 한 이름 의 이름 이 같 을 수 있 습 니 다.마지막 으로 설 치 된 것 은 앞의 프로그램 집합 을 덮어 씁 니 다.
22:GAC 에 프로그램 집합 을 끌 어 다 놓 을 수 있 는 이 유 는 windows explorer 셸(확장)shFusion.dll 입 니 다.
23:명령 창 cmd 에서 gac 디 렉 터 리 에 들 어가 gac 의 구 조 를 봅 니 다.
24:.net framework 를 설치 할 때 복사 본 두 세트,컴 파일 러/CLR 디 렉 터 리 한 세트,다른 한 세트:GAC 서브 디 렉 터 리 를 설치 합 니 다.
25:ToString 방법 은 기본적으로 이것 을 번복 합 니 다.GetType().FullName.
26:GetType 방법 은 비 허구 적 인 방법 으로 이 방법 을 다시 쓰 는 것 을 방지 하고 그 유형 을 숨 기 며 안전성 을 파괴 할 수 있다.
27:네 임 스페이스 는 프로그램 집합 과 아무런 관계 가 없습니다.
28:쌓 인 모든 대상 에는 두 개의 추가 구성원 이 포함 되 어 있 습 니 다.유형 대상 포인터 와 동기 블록 색인 입 니 다.
29:System.Object 의 GetType 방법 은 지 정 된 대상 에 저 장 된'유형 대상 포인터'구성원 의 주 소 를 되 돌려 줍 니 다.
30:GetType 방법 은 대상 을 가리 키 는 유형 대상 의 지침 을 되 돌려 줍 니 다.
31:컴 파일 러 가 직접 지원 하 는 모든 데이터 형식 을 기본 형식 이 라 고 합 니 다.
32:값 형식 인 스 턴 스 를 대표 하 는 변수 에는 인 스 턴 스 를 가리 키 는 지침 이 포함 되 어 있 지 않 으 며,반대로 변수 에는 인 스 턴 스 자체 의 필드 가 포함 되 어 있 습 니 다.
33:문 서 는 모든 값 형식 을 하나의 구조 또는 하나의 매 거 라 고 부 릅 니 다.
34:만약 에 자신 이 쓴 코드 가 컴 파 일 러 가 하나의 값 유형 을 반복 적 으로 포장 할 수 있다 는 것 을 알 게 된다 면 수 동 방식 으로 값 유형 을 포장 하면 코드 가 더욱 작고 빨 라 질 것 이다.
35:제3 4 조 요약:자원 낭비 시간 이 많은 절 차 를 호출 하 는 횟수 를 낮 춘 다.
36:인 터 페 이 스 를 사용 하 는 방식 으로 포장 대상 의 필드 를 변경 할 수 있 습 니 다.C\#에서 인 터 페 이 스 를 사용 하지 않 는 방법 은 이 목적 을 달성 하 는 것 입 니 다.이 방식 은 약간 복잡 하기 때문에 필드 를 수정 해 야 하 는 값 유형 을 추천 하지 않 습 니 다.디자인 모델 에서 값 유형 은 변 하지 않 는 유형 입 니 다.
37:내부 에서 ValueType 의 Equals 방법 은 반사 기술 을 사용 하여 필드 의 비 교 를 완성 합 니 다.반사 가 느 리 기 때문에 자신의 값 유형 을 정의 할 때 Equals 방법 을 다시 써 야 합 니 다.base.Equals 를 호출 하지 마 십시오.구체 적 인 재 작성 절 차 는 다음 과 같 습 니 다.
a:만약 obj==null C>false;
b:매개 변수 참조 대상 -> false;
c:필드 마다 C>check->같 지 않 음(false)
d:true.
정확 한 재 작성 Equals 방법 은 복잡 하기 때문에 성능 요구 가 심각 하지 않 은 곳 에 서 는 재 작성 하지 않 아 도 된다.
38:해시 표 의 건 치 를 수정 해 야 할 때 정확 한 방법 은 먼저 제거 하고 추가 하 는 것 입 니 다.
39:해시 코드 를 지속 적 으로 사용 하지 마 세 요.해시 코드 는 쉽게 바 뀌 기 때 문 입 니 다.예 를 들 어 미래의 버 전 은 서로 다른 알고리즘 을 사용 하여 대상 의 해시 코드 를 계산 할 수 있 습 니 다.
40:메타 데이터 의 형식 은 소스 코드 가 사용 하 는 프로 그래 밍 언어 와 무관 하기 때문에 메타 데이터 의 형식 은 모두 같 습 니 다.메타 데 이 터 는 모든 언어 가 생 성하 고 사용 할 수 있 는 공공 정보 로.net framework 개발 플랫폼 의 관건 입 니 다.프로 그래 밍 언어,유형 과 이미지 간 의 빈 틈 없 는 통합 을 허용 합 니 다.
41:접근 가능 한 모든 구성원 에 대해 보 이 는 형식 으로 정의 해 야 합 니 다.
PS:클래스 가 보이 지 않 으 면 클래스 안에 있 는 것 도 볼 수 있 습 니까?
42:유형의 가시 성:Public 내부(기본 값)
구성원 의 가시 성:Public proctected private(기본 값)
43:CLR 은 인터페이스의 모든 구성원 에 게 공 개 를 요구 하고 인 터 페 이 스 는 계약 이 며 계약 이기 때문에 구성원 이 모두 공개 하 는 것 이 의미 가 있다.
44:C\#컴 파일 러 는 원본 구성원 과 재 작성 구성원 이 같은 접근 성 을 가 져 야 하 며,CLR 은 구성원 의 접근 성 제약 이 더 낮 고 더 높 은 것 을 허용 하지 않 습 니 다.부모 클래스 의 어떤 방법 이 proctected 라면 하위 클래스 가 이 방법 을 다시 쓸 때 제약 이 더 낮은 것 을 선택 할 수 있 습 니 다.
Public,하지만 더 강 한 private 를 선택 할 수 없습니다.
44:키워드 static 는 클래스 에 만 적용 할 수 있 으 며,값 형식(구조,매 거 진)에 적용 할 수 없습니다.값 유형 은 반드시 예화 되 어야 하 며,이 과정 을 멈 추고 막 을 방법 이 없 기 때 문 입 니 다.
45:정적 클래스 는 System.Object 를 직접 계승 해 야 합 니 다.계승 성 은 대상 에 만 적용 되 기 때 문 입 니 다.
46:정적 클래스 는 인 터 페 이 스 를 실현 할 수 없습니다.인 스 턴 스 를 사용 해 야 인 터 페 이 스 를 호출 할 수 있 지만 정적 클래스 는 예화 할 수 없습니다.
47:정적 구성원 만 정의 할 수 있 습 니 다.정적 클래스 는 예화 할 수 없 기 때 문 입 니 다.
48:컴 파일 러 는 정적 클래스 형식 에서 인 스 턴 스 구조 기 방법 을 만 들 지 않 습 니 다.
49:C\#컴 파 일 러 는 일부 클래스(partial type)특징 을 완전히 지원 하지만 CLR 은 전혀 지원 하지 않 습 니 다.심지어 CLR 은 전혀 지원 하지 않 습 니 다.
partial 키워드.
50:형식 필드:CLR 은 형식 을 처음 참조 할 때 동적 메모리,즉 jit 컴 파일 을 만 듭 니 다.
인 스 턴 스 필드 에 대해 서 는 형식 인 스 턴 스 를 만 들 때 만 저장 필드 의 동적 메모 리 를 할당 합 니 다.
51:한 필드 가 인용 형식 에 속 하고 readonly 로 표시 된다 면 인용 대상 이 아 닌 이 인용 자 체 를 바 꿀 수 없습니다.
52:구조 기 는 유형 인 스 턴 스 를 유효 상태 로 초기 화 할 수 있 는 특수 한 방법 입 니 다.
53:여러 개의 인 스 턴 스 구조 기 가 있다 면 this 키 워드 를 통 해 기본 무 참 구조 함 수 를 호출 한 다음 에 값 을 부여 하 는 것 이 좋 습 니 다.
public SomeType(int x,int y):this(){}
54:모든 값 형식의 구조 기 는 값 형식의 모든 필드 를 초기 화 해 야 합 니 다.값 형식의 모든 필드 는 읽 기 전에 초기 화 해 야 하기 때 문 입 니 다.
55:유형 구조 기 는 최대 하나 이 고 매개 변수 가 영원히 없습니다.
56:CLR 은 모든 응용 프로그램 필드 의 유형 구조 기 를 한 번 만 실행 할 수 있 고 스 레 드 가 안전 하기 때문에 구조 에 가장 적합 합 니 다.
singleton 모드
57:프로그램 도 메 인 이 닫 혔 을 때 일부 코드 를 실행 하 기 를 원한 다 면 System.AppDomain 의 Domain Unload 이벤트 에 리 셋 방법 을 등록 할 수 있 습 니 다.
58:컴 파 일 러 가 FCL 의 핵심 수치(Int 32,Int 64)등 기본 형식의 조작 자 를 찾 을 때 직접 작 동 하 는 IL 명령 이 생 성 되 기 때문에 핵심 FCL 유형 은 조작 자 를 다시 불 러 오 는 방법 을 정의 할 수 없습니다.방법 호출 이 효율 에 영향 을 줄 수 있 기 때 문 입 니 다.
59:CLR 규범 은 연산 자 를 다시 불 러 오 는 방법 을 Public 와 static 방법 으로 정의 합 니 다.
60:방법의 마지막 매개 변수 만 params 키 워드 를 사용 할 수 있 습 니 다.
61:속성 은 out 또는 ref 매개 변수 로 전달 할 수 없고 필드 는 가능 합 니 다.속성의 본질은 getter 와 setter 이기 때문이다.
62:C\#컴 파일 러 는 인터페이스 정의 방법 만 허용 합 니 다.이벤트,속성,색인 기 는 본질 적 으로 방법 이기 때문에 인터페이스 에서 도 그들 을 정의 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.