CLR: 공용 언어 런타임(.net 공용 언어 런타임)은 .net 라이브러리로 개발된 모든 애플리케이션의 실행을 관리합니다.
CTS: 공용 유형 시스템(공통 유형 시스템)은 .NET Framework 상호 작용을 사용하는 데 도움이 되는 가장 기본적인 유형을 지정합니다. 다양한 언어 간
CIL: 공통 중간 언어(Common Intermediate Language)는 코드를 이 언어로 컴파일합니다. CIL 코드는 컴퓨터, OS, CPU와 독립적으로 필요한 네이티브 코드를 생성하는 데 사용됩니다.
JIT : 적시(CIL 코드는 필요할 때만 컴파일됨)
관리 코드: 코드를 CIL로 컴파일하고 어셈블리에 저장한 다음 JIT 컴파일러를 사용하여 네이티브 머신에서 요구하는 코드로 컴파일합니다. 또한 .NET Framework에서 작성된 코드의 실행을 관리해야 합니다.
.NET 애플리케이션을 생성하는 데 필요한 단계:
->C#을 사용하여 애플리케이션 코드 작성
->코드를 CIL로 컴파일하고 어셈블리에 저장
->코드를 실행할 때 JIT를 사용해야 합니다. 컴파일러에서 네이티브 코드로 컴파일된 코드
-> 관리되는 CLR 환경에서 네이티브 코드 실행
Reset 대 c#development 설정: 오류 1: 'CoffeeScript'에 대한 설정 가져오기 오류 [코드 5297]
이스케이프 시퀀스, 예를 들어 "이스케이프하려면" 큰따옴표를 사용하고 n을 사용하여 개행 문자를 이스케이프합니다.
문자열 삽입: 예: 출력 Console.WriteLine($"{outline}");
연산자 우선순위: + + , --는 접두사로 사용되며, (), +, -는 단항인 경우,! ,~
*,/,%
+,-
<<,>>
<,>,<=,>=
==,!=
&
^
|
&&
||
=,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|=
++,-- 접미사로 사용됨
C#의 분기 기술: 삼항 연산자, if 문, 스위치 문
C++에서 하나의 Case 문을 실행한 후 스위치 문은 다른 Case 문을 실행할 수 있지만 C#에서는 그렇게 하는 것이 불법입니다. 각 Case 문에는 중단이 필요합니다. 스위치 실행을 중단합니다
또한 스위치 구조를 중단할 뿐만 아니라 현재 함수의 실행도 중단하는 return 문을 사용할 수 있습니다. goto 문도 사용할 수 있습니다.
세 가지 유형의 루프: do 루프, while 루프, for 루프
루프 중단 명령: break, continue, return
checked를 사용하여 오버플로 검사 컨텍스트 설정
Enumeration: 열거형 값은 다른 유형으로 변환되며 명시적인 변환이 필요합니다
replace("str1","str2 사용) "), 함수 교체, 문자열을 str2로 교체 명령의 모든 str1
참조 ref 키워드로 매개변수를 전달하고, 호출의 매개변수 값을 변경하려면 'non-const'를 사용해야 합니다. 초기화 후 변수.
또는 출력 매개변수 out 키워드를 사용하면 할당되지 않은 변수를 사용할 수 있습니다. 함수가 out을 사용하면 할당되지 않은 것으로 간주되어야 합니다.
static 키워드는 전역 변수를 정의하고 const는 전역 상수를 정의합니다.
함수 시그니처에는 함수 이름과 매개변수가 포함되지만 반환 유형은 포함되지 않습니다.
Delegate: 함수 본문 없이 함수 참조를 저장하는 유형, 델리게이트 키워드를 사용하여 델리게이트 선언은 반환 유형과 매개변수 목록을 지정합니다
클래스: 자동차 계획 도면으로 이해되고, 객체: 자동차 자체로 이해됩니다.
클래스는 객체가 갖게 될 속성과 동작을 결정합니다.
class progrem
{ //필드, 함수, 속성 및 생성자를 작성할 수 있습니다. .
//필드: 데이터 저장 속성: 보호 필드 가져오기 설정(자동 속성 보호 시 인스턴스화 필요) 기능: 객체의 동작 설명 생성자: 객체를 초기화하고 객체의 각 속성에 값 할당
}
OOP:
패키지:
--- & GT; 많은 중복 코드 감소
--- & gt; 어려운 기능을 캡슐화하여 외부 세계에 제공합니다. 사용하기 매우 간단한 인터페이스. 우리는 그것을 괜찮게 사용할 것입니다. + ~ ㅋㅋㅋ > 해당 하위 클래스 객체
---- & gt; 키워드
1. IS: BOOL 유형으로 돌아가기 , 이 변환을 수행할 수 있는지 여부를 나타냅니다.
2. AS: 변환이 성공하면 객체가 반환되고, 그렇지 않으면 null이 반환됩니다. 기능: 모든 하위 클래스를 상위 클래스에 대한 프로그램으로 처리할 수 있습니다. , 그리고 변화하는 요구에 적응할 수 있는 공통 코드를 작성합니다. -다형성:------ & gt; 가상 메서드
가상 재정의
--- & gt; 추상 클래스
추상 재정의
--- & gt; 인터페이스
키워드
새로운
1, 창의적인 개체
-- ----------------- & gt; 참조 유형이 더미에 있음)
--- & gt; 열린 공간에 객체 생성
--- & gt; 상위 클래스의 숨겨진 멤버(하위 클래스 함수 이름이 상위 클래스와 동일한 경우)
This
1. 현재 클래스의 객체를 나타냄
2. 디스플레이 생성자의 표시
Base
1. 상위 클래스를 호출하는 생성자를 표시(상위 클래스의 객체가 아님)
2. 멤버 호출
* 정적 생성자가 포함된 클래스 인스턴스를 생성하는 경우
* 정적 생성자가 포함된 클래스의 정적에 액세스하는 경우 멤버
문자열 및 객체 단순 참조 유형, 배열은 암시적 참조 유형, 생성된 모든 클래스는 참조 유형입니다.
컴파일러는 파생 클래스가 기본 클래스보다 더 쉽게 액세스할 수 있도록 허용하지 않습니다.
인터페이스 사양은 기본 클래스 상속 뒤에 배치되어야 하며 쉼표로 구분되어야 합니다.
인터페이스에는 abstract 및 sealing 키워드가 없습니다(구현 코드가 포함되어 있지 않고 직접 인스턴스화할 수 없으며 상속 가능해야 함). 인터페이스는 클래스가 아니므로 System.Object
system.Object에 포함된 메서드를 상속하지 않습니다.
Equals() bool
ReferenceEquals() bool: 전달된 두 개체를 비교하여 해당 개체에 대한 참조인지 확인합니다. same 인스턴스
ToString() String: 개체 인스턴스에 해당하는 문자열을 반환합니다.
MemberwiseClone() 개체: 새 개체 인스턴스를 만들고 멤버를 복사하여 개체를 복사합니다.
GetHashCode() int: 객체의 상태를 압축된 형식으로 나타내는 값을 반환합니다.
메서드 정의에서 콜론 뒤에 코드를 배치하는 생성자 초기화 프로그램입니다. 예를 들어 파생 클래스의 생성자 정의에 사용할 기본 클래스 생성자를 지정할 수 있습니다.
base() 키워드를 사용하여 .NET 인스턴스화 프로세스가 기본 클래스에 지정된 매개변수가 있는 생성자를 사용하도록 지정합니다.
만들 수 없는 클래스 정의: 정적 클래스로 정의하거나 모든 생성자를 비공개로 정의합니다.
생성할 수 없는 클래스는 보유하고 있는 정적 멤버를 통해 사용할 수 있습니다.
ArrayList 컬렉션의 경우 개체의 Add() 메서드를 사용하여 새 항목을 추가합니다.
yield iteration
Boxing은 값 유형을 System.Object 유형으로 변환하거나 값에 의해 구현된 인터페이스 유형으로 변환합니다. 유형. 언박싱은 그 반대입니다.
기능: 항목 유형이 객체인 컬렉션에서 값 유형을 사용할 수 있습니다. 둘째, 값 유형에 대해 객체 메서드를 호출할 수 있는 내부 메커니즘이 있습니다.
is 연산자:
+=와 같은 할당 연산자는 오버로드될 수 없으며 && 및 ||
IComparable도 비교할 개체의 클래스에서 구현되며 해당 개체를 다른 개체와 비교할 수 있습니다. Provide CompareTo(), int, Accepts 개체
IComparer는 별도의 클래스에서 구현되며 두 개체를 비교할 수 있습니다. Compare() 제공, int는 두 개체를 허용합니다.
Class Comparer는 ICompare 인터페이스의 기본 구현인 Comparer.Default.Compare(one , two)를 제공합니다. CaseInsensitiveComparer 클래스: 대소문자 구분 없음
null 허용 유형 선언: int? nullableInt?는 읽기 쉬운 System.Nullable
공변성 및 반변성:
일반 유형 매개변수는 공변성으로 정의됩니다. out 키워드를 추가하고, 그렇지 않으면 in 키워드를 사용하여 반변성을 구현합니다.
Chuanzhi 팟캐스트:
1 네임스페이스 가져오기
참조 추가:
다른 프로젝트의 클래스에 액세스해야 하는 경우
‐ ‐ ‐ ‐‐‐‐‐‐‐>
2. 정적 및 비정적
정적 멤버: 정적에 의해 수정됨
인스턴스 멤버: 정적에 의해 수정되지 않음
정적 멤버는 인스턴스 멤버보다 먼저 메모리에 로드됩니다. 개체가 생성될 때만 인스턴스 멤버가 있을 수 있습니다.能 정적 클래스는 정적 멤버만 존재할 수 있습니다.
정적 멤버 호출:
클래스 이름. 정적 멤버 이름.
예제 멤버 호출:
인스턴스 이름.
언제 정적을 사용합니까? G ---- & gt; 모든 확장 방법과 같은 도구 클래스입니다! 모두 정적 필요
----> 리소스는 프로젝트 전체에서 공유됩니다. 리소스 공유이기 때문에 정적 멤버는 전체 프로젝트가 끝날 때까지
기다려야 리소스별로 해제됩니다.
프로젝트에서는 정적 멤버를 가능한 한 적게 사용해야 합니다.
상속은 객체를 생성하는 과정입니다.
3, 디자인 모드------ & gt; 단일 디자인 모드
전체 프로그램에서 개체가 고유해야 합니다.
구현:
사용 사용 사용 사용 ‐ ‐ ‐ ‐‐‐‐‐ > 단계: 전역적으로 고유한 객체를 반환하는 정적 함수를 선언하세요.
|
}
ㅋㅋㅋ 전역적으로 고유한 양식 개체를 저장하기 위한 정적 필드 선언
private static Form2 _single = null; public static Form2 GetSingle()
~ '父 연습:
사용자에게 두 개의 숫자를 입력하라는 메시지를 표시합니다. 별도로:
다시 입력 연산자: 계산된 상위 클래스를 반환하고 메서드를 호출하여 결과를 얻습니다. CADD SUB Cheng Chu
건설 업계 최초 적용 컨셉
1. 회사 등록
2. 말 모집 및 구매 3, 토지 구매 입찰
4. 건설팀을 구성하여 건설 시작
5. 건물 매각
디자인 모델은 특정 문제를 해결하기 위해 이를 사용하는 것입니다.
4. 클래스 라이브러리
.dll 파일, 일반적으로 사용되는 일부 기능을 캡슐화하는 데 도움이 되는 클래스 라이브러리
5. 값 유형 및 참조 유형
값 유형: int double char bool 십진수 구조체 enum
참조 유형: 문자열 배열 사용자 정의 클래스 인터페이스 델리게이트
값 유형 값은 메모리 스택에 저장되고, 참조 유형 값은 힙에 저장됩니다.
스택에 데이터를 저장하는 효율성은 힙에 저장하는 것보다 높습니다. ㅋㅋㅋ
꺼짐.
참조로 전달: 참조 유형의 값을 매개변수로 전달하며, 전달되는 것은 참조입니다.
6. 문자열 학습
중요 기능:
불변성, 문자열에 대해 어떤 작업을 수행하더라도 메모리에 새 인스턴스가 생성됩니다. ㅋㅋㅋ
GC: Garbage Collection은 가끔씩 전체 메모리를 스캔하여 일부 공간이 지정되지 않았는지 알아냅니다. 그런 다음 즉시 파기하십시오.
1. 문자열의 불변성을 설명하세요. 2. 문자열 상수의 "임시 풀" 기능.
문자열, 문자열은 불변의 문자 배열로 간주될 수 있습니다(for 루프를 통해 문자열의 요소를 수정하면 실패합니다!).
속성
길이 //문자열의 문자 수를 가져옵니다. "aA我你他"→5
Method
IsNullOrEmpty() null 또는 ""로 판단되는 정적 메서드(정적 메서드)
ToCharArray() 문자열을 char[]로 변환
ToLower() 소문자로 반환값을 받아야 합니다. (왜냐하면 문자열은 변경할 수 없습니다.);
ToUpper()는 대문자입니다. 사용 두 문자열(주소/객체 상태 및 == 객체 참조 비교)이 동일한지 여부입니다. 대소문자 비교는 무시하세요, StringComparation.
// 문자열 타입은 등호든 Equals든 값 자체를 비교합니다. L // Equals의 기본 비교는 주소이지만, 자체 정의 클래스에서 Equals를 사용하는 경우 필요에 따라 EQUALS를 다시 작성하여 비교합니다. Return -1.//인터뷰 질문: "천안문" 횟수를 계산합니다. "라는 문자열이 나타납니다.
LastIndexOf() 해당 데이터가 발견되지 않으면 -1
Substring() // 2개의 오버로드, 문자열을 가로챕니다.
Split() //문자열을 분할합니다.静 Join () 정적 메서드
replacement ()
객체 초기화: 기본이 아닌 생성자를 사용하거나 각 속성의 값을 제공하기 위해 추가 코드가 필요하지 않습니다.
개체 및 컬렉션 이니셜라이저 병합(LINQ 기술과 함께 사용하기에 적합)(컴파일러는 컬렉션 이니셜라이저에서 제공되는 각 항목에 대해 컬렉션의 Add() 메서드를 호출함)
데이터 저장소 객체의 속성 값을 수정하려는 경우 익명 유형( 읽기 전용 속성으로 정의되어 있기 때문에)
선택적 매개변수, 기본값이 없는 매개변수는 기본값이 있는 매개변수 뒤에 올 수 없습니다.
이름이 지정된 매개변수, 매개변수의 순서는 임의적이고 선택사항입니다. 그러나 명명된 매개변수와 위치 매개변수를 혼합하는 경우 모든 위치 매개변수를 포함해야 하며 그 뒤에 명명된 매개변수가 와야 합니다.
Lambda 식: 대리자 유형의 변수에 할당된 대리자입니다. 식 트리로 해석됩니다.
성능: 괄호 안의 매개변수 목록 => C# 문/{여러 줄의 코드 + void 대리자가 아닌 경우 반환이 필요합니다.}LINQ 프레임워크에는 Lambda 식을 캡슐화하는 데 사용할 수 있는 일반 클래스가 포함되어 있습니다. 이 클래스를 사용하는 한 가지 방법은 C#으로 작성된 Lambda 식을 추출하여 해당 SQL 스크립트로 변환하는 것입니다.
Extension 메서드 Aggregate ( )는 컬렉션의 각 요소 쌍에 처음부터 끝까지 누산기 함수를 적용하는 것을 의미합니다.
Chuanzhi 팟캐스트 기본 강화 3:
1. StringBuilder: 많은 수의 문자열 작업을 수행하는 도구입니다. 문자열 객체는 변경할 수 없습니다.
ToString()을 사용하여 StringBuilder를 문자열로 변환합니다.
사용 StringBuilder를 String으로 변환하려면 *sb.ToString();//ToString("x2")은 16진수로 변환하는 것을 의미하며 이는 두 자리입니다. S*sb.insert ();
*sb.replace ();
WPF에서 윈도우 애플리케이션 없이 WPF에서 윈도우 애플리케이션 사용의 documentext를 사용하고 webbrow.navigatetring(sb.tostring()만 사용할 수 있습니다. );
2. out: out 매개변수는 함수에서 여러 값을 반환하는 데 중점을 둡니다. 매개변수 요구사항은 메서드 내부에 값을 할당해야 합니다.
3. ref 매개변수: ref 매개변수는 값을 함수로 가져오는 데 중점을 둡니다. 변화를 위한 기능, 그리고 변화의 가치에 대한 이야기가 나옵니다. ref 매개변수는 함수 내에서 값을 할당할 필요가 없습니다. 4.
5. 컬렉션 학습:
비제네릭 컬렉션:
ArrayList Hashtable
일반 컬렉션:
List< ;T>: 배열에 대해 초기 범위를 결정할 필요가 없습니다.
용량: 집합에 포함될 수 있는 요소 수(초기값은 4, 매번 두 배로 증가)
개수: 실제로 포함된 요소 수를 구합니다. 집합
Add(): 단일 요소 추가
AddRange(): 컬렉션 추가
Insert(): 요소 삽입
InsertRange(): 컬렉션 삽입
사용의 사용 ' out out out through out through out through out's through out using off ‐ ‐ ‐‐ ‐‐to Inside는 list.RemoveAll(n = >n ToList()와 같은 람다 표현식입니다. 배열은 i 사전 & lt; tKey, TVAlue & gt;
컬렉션으로 변환됩니다. 6. 인커핑 및 복싱:
복싱: 값 유형 --- & gt; 참조 유형
복싱: 견적 유형 --- & GT 값 유형
언박싱 또는 복싱이 발생했는지 확인하려면 먼저 두 데이터 유형 간의 상속 관계.类 설치할 때 어떤 종류의 상자를 사용하고, 분해할 때는 어떤 종류의 상자를 사용합니까?
7. 인코딩 형식:
문자열을 바이너리 형식으로 저장합니다. 5 ASCII 256s 6000 GB2312
GBK GB18030
N iso
unicode
UTF-16
UTF-8
잘못된 코드 발생 이유: 이 파일을 저장할 때 채택한 코딩이 이 파일을 열 때 채택한 인코딩 형식과 일치하지 않습니다.拖 텍스트 파일 : txt로 볼 수 있는 텍스트 파일을 볼 수 있습니다. T .txt .html .ini .Xml
파일 기본 동작 : 파일 운영
존재() : 지정된 파일이 존재하는지 판단
생성() : 생성
이동() : 잘라내기
복사() : 복사
삭제(복사
delete (delete (delete () ; 이동: 잘라내기
Exist() 판단 지정된 폴더가 존재하는지 여부
GetFiles()는 지정된 디렉터리에 있는 모든 파일의 전체 경로를 가져옵니다
Directory.GetFiles(@"E:download", "* .avi")는 모든 .avi 파일을 가져옵니다.
현재 첫 번째 디렉터리 아래의 모든 폴더만 가져올 수 있습니다. 정규식 메인 클래스: Regex
는 템플릿입니다. 이 템플릿을 사용하여 문자열 묶음에서 원하는 데이터를 찾을 수 있습니다. .
참고: 정규 표현식은 문자열에서 작동합니다.
구성:
한정자, 메타 문자, 일반적으로 사용되는 표현식
일치 여부 결정: Regex.IsMatch("string", "regularexpression");
문자열 추출: Regex.Match("string"," 문자열의 정규 표현식 ");
(모두 추출하는 루프) : regex.matches () 문자열 교체 : regex .. 최대한 비탐욕:.+? . 가능한 한 적게 일치, 1
스타일: 일괄적으로 컨트롤에 적용할 특정 속성을 설정합니다.
템플릿: 이를 기반으로 컨트롤의 모양을 설정합니다.
Trigger:
Tigger 개체가 모니터링하는 속성을 정의하려면 Trigger를 사용해야 합니다. .Property 속성
Trigger 개체가 활성화되는 시기를 정의하려면 Trigger.Value 속성을 설정해야 합니다.
Trigger에 의해 트리거되는 작업을 정의하려면 Trigger.Setters 속성을 Setter 개체 컬렉션으로 설정해야 합니다.
애니메이션: 다음을 통해 생성됩니다. storyboard, storyboard object 리소스 사전에 포함되어 있으며 x:Key 속성으로 식별되어야 합니다.
키프레임이 없는 타임라인: DoubleAnimation, PointAnimation 및 ColorAnimation
종속 속성: propdp를 입력하고 Tab 키를 두 번 눌러 속성 템플릿을 삽입합니다.
XML: 확장 가능한 마크업 언어
HTML과의 차이점: XML의 요소는 닫혀야 합니다! XML 요소의 속성은 인용되어야 합니다.
구문 사양: 태그, 중첩 및 속성. E 태그(즉, 요소 요소)는 닫혀 있어야 하며, 속성 값은 ""로 둘러싸여 있어야 하며, 레이블은 서로 중첩될 수 있습니다.
XML에서 노드(Node)는 요소(Elements)를 포함합니다.
대소문자 구분
XML 생성: DOM 문서 개체 모델
XmlDocument doc=new XMLDocument(); XmlNode xn = order.SelectSingleNode("/Order /Items/orderitem [@name = 'raincoat']);
루트 노드는 허용되지 않습니다. 삭제, 즉 Doc.Removeal (); 및 S/X, 코드 조각/외부 코드를 삽입하는 단축키(예: #region
Delegate: 대리자를 사용하여 함수를 매개변수로 전달)
함수는 대리자 개체에 직접 할당할 수 있습니다. 대리자의 서명은 함수의 서명과 동일해야 합니다(즉, 반환 값과 매개 변수 유형이 일치해야 합니다)
DelSayHi del = SayHiChina;/ /new DelSayHi(SayHiChina);
비교: 위임은 안전하지 않습니다. ,
이벤트 자체는 안전한 대리자입니다.
Public Delegate void delTest(); //이벤트 등록 시 대리자는 필요합니다.
public event delTest eventTest 이벤트 등록:
EventTest + = new delTest(method1);
eventTest += new delTest(method2); 특정 코드를 지정할 때 먼저 위임 변수를 사용하여 메서드 호출을 대체할 수 있습니다(대리자의 반환 값과 매개 변수 목록이 결정되어야 함)
이벤트의 역할:
이벤트의 기능은 위임 변수와 동일하지만 위임 변수보다 기능적 제한이 더 많습니다.
어셈블리의 이점:
필요한 어셈블리만 프로그램에서 참조되어 프로그램 크기가 줄어듭니다.
어셈블리는 일부 코드를 캡슐화하고 필요한 액세스 인터페이스만 제공할 수 있습니다.
16장:
클라우드: 데이터 센터에서 실행되는 대량의 상용 컴퓨터 하드웨어일 뿐입니다. 이 데이터 센터는 프로그램을 실행하고 많은 양의 데이터를 저장할 수 있습니다.即 탄력성, 즉 동적 확장 기능(예: 메모리 및 CPU 증가) 및/또는 동적 확장 기능(가상 서버 인스턴스 수 증가)을 갖습니다.
클라우드 서비스 모드:
1. 인프라, 서비스( IaaS): 운영 체제부터 시작하여 위쪽으로 책임을 집니다.
2. PaaS(Platform as a Service): 값은 선택한 운영 체제에서 실행되는 프로그램 및 해당 종속성을 담당합니다.
3. SaaS(Software as a Service): 인터넷을 통해 액세스되는 장치에서 사용되는 소프트웨어 프로그램 또는 서비스입니다.
관련 권장 사항:
정적 지역 변수를 통해 C, C++, C#, Java 및 PHP의 특성 살펴보기
위 내용은 C#을 시작하기 위한 기본 학습 단계 요약(복잡함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!