Int32 는 .NET 프레임워크에서 제공하는 유형인 반면 int C# 언어의 Int32에 대한 별칭입니다. Int32 x =5; 정수 x =5; 따라서 위의 두 명령문은 모두 32비트 정수를 보유합니다. 동일한 코드로 컴파일되므로 실행 시에는 아무런 차이가 없습니다. 유일한 사소한 차이점은 Int32는 시스템 에서만 사용할 수 있다는 것입니다. 네임스페이스. 위에서 언급한 값의 유형을 검증하는 동안 Int32 또는 int를 사용할 수 있습니다. typeof(int) == typeof(Int32) == typeof(S
null 병합 입니다. 운영자. 널 병합 연산자 ?? null이 아니면 왼쪽 피연산자의 값을 반환합니다. 그렇지 않으면 오른쪽 피연산자를 평가하고 결과를 반환합니다. ?? 연산자는 왼쪽 피연산자가 null이 아닌 것으로 평가되는 경우 오른쪽 피연산자를 평가하지 않습니다. nullable 형식은 정의되지 않거나 형식의 도메인에 있는 값을 나타낼 수 있습니다. 우리는 사용할 수 있습니다 ?? 왼쪽 피연산자가 nullable 형식일 때 적절한 값을 반환하는 연산자입니다. ??를 사용하지 않고 nullable 값 형식을 nullable이
문자열을 문자 그대로의 문자열로 표시합니다. . C#에서는 특수 기호 @를 사용하여 축자 문자열을 만듭니다. @는 축자 식별자로 알려져 있습니다. 문자열에 @가 접두사로 포함되고 그 뒤에 큰따옴표가 붙는 경우 컴파일러는 해당 문자열을 축어 문자열로 식별하고 해당 문자열을 컴파일합니다. @ 기호의 주요 이점은 문자열 생성자에게 이스케이프 문자와 줄 바꿈을 무시하도록 지시하는 것입니다. 예시 using System; using System.IO; namespace DemoApplication{ class Pro
액세스 한정자는 클래스 구성원의 액세스 가능성 범위 또는 클래스 자체 유형을 지정하는 데 사용됩니다. 액세스 수정자에는 6가지 유형이 있습니다. 공개 비공개 보호됨 내부 내부 보호 비공개 공개 액세스 수정자 공개 액세스 수정자를 구현하는 개체는 제한 없이 프로젝트의 모든 위치에서 액세스할 수 있습니다. 예시 using System; namespace MyApplication{ public class Program{ public stat
C#의 메서드는 일반적으로 사용자에게 동일한 코드를 재사용할 수 있는 기능을 제공하여 궁극적으로 과도한 메모리 사용을 절약하고 시간을 절약하는 역할을 하는 프로그램의 코드 또는 명령 블록입니다. 그리고 더 중요한 것은 코드의 가독성을 높여줍니다. 사용자가 메소드를 실행하기를 원하는 특정 상황이 있을 수 있지만 때로는 해당 메소드가 작업을 실행하고 완료하기 위해 몇 가지 귀중한 입력이 필요합니다. 이러한 입력 값을 매개변수라고 합니다. . 매개변수는 다음과 같은 방법으로 메소드에 전달할 수 있습니다. - 값 매개변수 참조
주요 차이점은 StringBuilder는 변경 가능입니다. 반면 문자열은 변경할 수 없습니다. String은 immutable, Immutable은 string 객체를 생성하면 수정할 수 없고 메모리에 항상 string형의 새로운 객체를 생성한다는 의미입니다. 반면 StringBuilder는 변경 가능합니다. 즉, 문자열 작성기 객체를 생성하면 매번 새 인스턴스를 생성하지 않고도 삽입, 교체 또는 추가와 같은 작업을 수행할 수 있습니다. 메모리의 한 위치에서 문자열을 업데이트하지만 메모리에 새 공간을 만들지 않습니다. 예시 u
인터페이스 메소드는 이 인터페이스를 구현하는 클래스가 특정 작업 세트를 수행하도록 지정하는 외부 세계와의 계약입니다. 인터페이스의 목적은 다른 유형이 클래스 또는 구조체에 액세스할 수 있도록 하는 것이기 때문에 인터페이스 멤버는 항상 공용입니다. 인터페이스는 protected 또는 internal 등과 같은 액세스 지정자를 가질 수 있습니다. 따라서 외부 세계를 전체 외부 세계의 하위 집합으로 제한합니다. 예시 interface IInterface{ void Save(); } class Program{ &
C#에서는 아래 접근 방식을 사용하여 여러 값을 반환할 수 있습니다. − 참조 매개변수 출력 매개변수 배열 반환 튜플 반환 참조 매개변수 예시 class Program{ static int ReturnMultipleValuesUsingRef(int firstNumber, ref int secondNumber){ secondNumber = 20; return firstNumber; } &n
C# 5.0 및 이전 버전에서 Auto Property에 값을 지정하려면 생성자에서 수행해야 합니다. 클래스가 인스턴스화되고 값이 설정될 때 생성자가 자동으로 호출됩니다. C#5.0 이후에 auto 속성에 값을 지정하는 새로운 방법이 생겼습니다. 이는 변수에 값을 할당하는 것과 유사합니다. 예 Set Value in Constructor class Demo{ public Demo(){ FirstName = "DemoName";
튜플은 ref 또는 out 매개변수를 사용하지 않고 메서드에서 여러 값을 반환하려는 경우에 사용됩니다. 튜플은 단일 매개변수를 통해 메소드에 여러 값을 전달하는 데 사용됩니다. 튜플은 함께 중첩될 수도 있습니다. 예시 튜플을 매개변수로 전달 class Program{ static void DisplayTupleValues(Tuple<int, string, string> dummy){ Console.WriteLine($"Id = { dummy.Item
정적 생성자는 첫 번째 인스턴스가 생성되거나 정적 멤버가 참조되기 전에 자동으로 호출됩니다. 정적 생성자는 정적 데이터를 초기화하거나 한 번만 수행해야 하는 특정 작업을 수행하는 데 사용됩니다. C#에서는 하나의 정적 생성자만 생성할 수 있습니다. 정적 생성자는 다음과 같은 속성을 가집니다 - 정적 생성자는 액세스 수정자를 사용하지 않거나 매개변수를 갖지 않습니다. 클래스 또는 구조체는 하나의 정적 생성자만 가질 수 있습니다. 정적 생성자는 상속되거나 오버로드될 수 없습니다. 정적 생성자는 직접 호출할 수
이 기능 활용 다른 생성자에서 하나의 생성자를 호출하는 C#의 키워드 상위 클래스에 있는 생성자를 호출하려면 기본을 사용합니다. 키워드 예시 class Demo{ public Demo(){ System.Console.WriteLine("Parameter less constructor called"); } public Demo(int firstNumber, int secondNumber) : this(){ &
여기 예제에서는 정적 데모 클래스가 생성되고 정적 변수 개수가 선언됩니다. 여기에서 count 변수는 전역 변수로 처리됩니다. 따라서 클래스의 인스턴스가 하나만 생성되기 때문에 예제에서는 계속 증가합니다. 예시 static class Demo{ public static int count; static Demo(){ System.Console.WriteLine("Static Constuctor called"); &nbs
선택 연산자는 투영 연산자 범주에 속하는 모든 소스 SelectMany 연산자에 대해 하나의 결과 값을 생성합니다. 시퀀스의 각 요소를 IEnumerable에 투영하고 결과 시퀀스를 하나의 시퀀스로 병합하는 데 사용됩니다. 예시 class Demo{ public string Name { get; set; } public List<string> Contents { get; set; } public static List<Demo>GetAllCon
C#에서 소멸자는 클래스의 특수 메서드이며 클래스 내부에서 개체 또는 클래스 인스턴스를 파괴하는 데 사용됩니다. 클래스 내부에는 소멸자가 하나만 있을 수 있습니다. 다음은 C#에서 소멸자의 속성입니다. 소멸자는 매개변수를 사용하지 않습니다. 소멸자는 물결표 기호(~)로 시작합니다. 소멸자(~)는 구조체에서 정의할 수 없습니다. 소멸자를 호출할 수 없습니다. 자동으로 호출됩니다. 소멸자는 개체의 기본 클래스에서 암시적으로 Finalize를 호출합니다. 예 class Demo{
이 기능 활용 다른 생성자에서 하나의 생성자를 호출하는 C#의 키워드 상위 클래스에 있는 생성자를 호출하려면 base를 사용합니다. 키워드 예 다른 클래스에 있는 생성자를 호출하려면 기본 키워드를 사용하십시오. class DemoBase{ public DemoBase(int firstNumber, int secondNumber, int thirdNumber){ System.Console.WriteLine("Base class Constructor");
솔루션 구축 그러면 증분 빌드가 수행됩니다. 즉, 변경된 코드 파일만 빌드합니다. 변경되지 않은 경우 해당 파일은 건드리지 않습니다. 변경된 코드 파일(DLL 및 EXE)을 컴파일합니다. 솔루션 재구축 이것은 현재 컴파일된 모든 파일(예:exe 및 DLL)을 삭제하고 모든 것을 처음부터 빌드합니다. 파일에 코드 변경이 있는지 여부에 관계없이. 깨끗한 솔루션 이 메뉴는 bin/obj 디렉토리에서 모든 컴파일된 파일(예:EXE 및 DLL)을 삭제합니다. 재건 =청소 + 구축
연합 Union은 여러 컬렉션을 단일 컬렉션으로 결합하고 고유한 요소가 있는 결과 컬렉션을 반환합니다. 교차 Intersect는 두 입력 시퀀스에서 공통적인 시퀀스 요소를 반환합니다. 제외 예외는 두 번째 입력 시퀀스에 없는 첫 번째 입력 시퀀스의 시퀀스 요소를 반환합니다. 예시 class Program{ static void Main(){ int[] count1 = { 1, 2, 3, 4 }; int[] count2 = { 2,
클래스가 동일한 서명을 가진 멤버를 포함하는 두 개의 인터페이스를 구현하는 경우 클래스에서 해당 멤버를 구현하면 두 인터페이스에서 해당 멤버를 구현으로 사용합니다. 인터페이스 멤버를 명시적으로 구현하는 것이 가능합니다. 인터페이스를 통해서만 호출되고 해당 인터페이스에 고유한 클래스 멤버를 생성합니다. 예 interface ICar{ void display(); } interface IBike{ void display(); } class ShowRoom : ICar, IBike{ &nb
완료 Finalize()는 수집에 적합한 개체가 회수되기 전에 Garbage Collector에 의해 호출됩니다. 가비지 수집기는 참조되지 않은 개체에 대한 메모리 할당을 해제하는 책임을 집니다. Garbage Collector는 메모리에 해당 개체에 대한 유효한 참조가 더 이상 없는 후 어느 시점에서 이 메서드를 호출합니다. 프레임워크는 이러한 일이 발생할 때 가비지 컬렉션을 강제할 수 있다고 보장하지 않지만 프로그램의 성능을 저하시킵니다. Finalize()는 Object 클래스에 속하며 런타임에서 호출됩니다. 예시 usin