Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#

  1. C# 문맥 키워드(Contextual Keywords)란 무엇인가?

    C#에서 일부 식별자(identifier)는 코드의 특정 문맥 안에서만 특별한 의미를 가지는데, 이러한 키워드를 문맥 키워드(Contextual Keywords)라고 부릅니다.문맥 키워드와 예약 키워드의 차이일반적인 예약 키워드(reserved keyword)는 변수명이나 메서드명으로 사용할 수 없지만, 문맥 키워드는 특정 위치에서만 키워드로 해석될 뿐, 그 외의 상황에서는 일반 식별자로 자유롭게 사용할 수 있다는 점이 큰 차이입니다.대표적인 예로 속성(property)을 정의할 때 사용하는 get과 set이 있습니다. 이들은 접근

  2. C#에서 동적 배열(Dynamic Array)이란? 개념부터 예제까지

    C# 동적 배열이란 무엇인가?동적 배열(Dynamic Array)은 실행 중에 크기가 자동으로 늘어나거나 줄어들 수 있는 배열입니다. 일반적인 정적 배열은 한 번 선언하면 크기를 변경할 수 없기 때문에, 필요한 데이터의 양을 미리 알 수 없는 상황에서는 비효율적일 수 있습니다. 반면 동적 배열은 요소가 추가될 때마다 내부적으로 용량을 조절하기 때문에 훨씬 더 유연하게 활용할 수 있습니다.ArrayList를 사용한 동적 배열 생성C#에서는 ArrayList 컬렉션을 사용하여 동적으로 배열을 생성할 수 있습니다. ArrayList는 각

  3. C# 이벤트(Event)란 무엇인가? 개념부터 실전 예제까지

    C# 이벤트란?이벤트(Event)는 키 입력, 마우스 클릭, 마우스 이동 등과 같은 사용자 동작 또는 시스템에서 발생하는 알림과 같은 특정 사건을 의미합니다.C#에서 이벤트는 클래스 내부에서 선언되고 발생(raise)되며, 델리게이트(delegate)를 사용하여 같은 클래스 또는 다른 클래스에 정의된 이벤트 핸들러와 연결됩니다. 이때 이벤트를 포함하고 있는 클래스는 해당 이벤트를 외부에 게시(publish)하는 역할을 담당합니다.즉, 이벤트 모델은 게시자(Publisher)와 구독자(Subscriber) 구조로 동작하며, 특정 상황

  4. C# 생성자와 소멸자의 차이점 완벽 정리

    C#에서 객체의 생명 주기를 관리하는 핵심 요소인 생성자(Constructor)와 소멸자(Destructor)는 이름만 들으면 비슷해 보이지만, 호출 시점과 역할이 완전히 다릅니다. 이 글에서는 두 개념의 차이점을 예제 코드와 함께 자세히 살펴보겠습니다. C# 생성자(Constructor)란? 생성자는 클래스의 새로운 객체가 생성될 때마다 자동으로 실행되는 특수한 멤버 함수입니다. 주로 객체를 초기화하거나 필요한 리소스를 준비하는 용도로 사용됩니다. 생성자의 특징은 다음과 같습니다. 클래스 이름과 정확히 동일한 이름을 가져야 합

  5. C#에서 ref와 out 매개변수의 차이점은 무엇일까?

    C#에서는 메서드에 인자를 전달할 때 값(value)으로 전달하거나 참조(reference)로 전달할 수 있습니다. 이때 참조로 전달하는 방식을 구현하는 키워드가 바로 ref와 out입니다. 두 키워드 모두 변수의 메모리 위치를 직접 참조한다는 공통점이 있지만, 초기화 요구 사항과 사용 목적에서 중요한 차이가 있습니다. ref 매개변수란? 참조 매개변수(reference parameter)는 변수의 메모리 위치에 대한 참조입니다. 값 매개변수와 달리, 참조로 매개변수를 전달하면 새로운 저장 위치가 생성되지 않습니다. 즉, 메서드

  6. C# 클래스 메서드와 클래스 멤버의 차이점 완벽 정리

    C# 클래스 멤버와 메서드, 무엇이 다를까? C#에서 클래스 멤버(class member)는 클래스를 구성하는 모든 요소를 뜻하며, 데이터를 담는 멤버 변수(필드)와 동작을 수행하는 멤버 함수(메서드)로 나눌 수 있습니다. 두 요소는 서로 긴밀하게 협력하는데, 메서드가 멤버 변수를 읽고 수정하면서 객체의 상태를 관리합니다. 클래스 메서드(멤버 함수)란? 메서드(method), 즉 멤버 함수는 일반 변수처럼 클래스 정의 내부에 정의 또는 원형(prototype)을 두는 함수입니다. 메서드는 자신이 속한 클래스의 어떤 객체에 대해서도

  7. C# 배열 클래스(Array Class)의 주요 속성과 활용 방법

    C# 배열 클래스란?C#에서 Array(배열) 클래스는 모든 배열의 기본(base) 클래스 역할을 하며, System 네임스페이스에 정의되어 있습니다. 이 클래스는 배열을 생성하고 다룰 때 유용하게 활용할 수 있는 다양한 속성과 메서드를 제공합니다.배열 클래스의 주요 속성번호속성 및 설명1IsFixedSize배열의 크기가 고정되어 있는지 여부를 나타내는 값을 반환합니다.2IsReadOnly배열이 읽기 전용(read-only)인지 여부를 나타내는 값을 반환합니다.3Length배열의 모든 차원에 포함된 요소의 총 개수를 32비트 정수(

  8. C# Array.Rank 속성으로 배열의 차원 수 확인하는 방법

    C#에서 Array.Rank 속성은 배열의 차원 수(rank)를 반환합니다. 다차원 배열을 다룰 때 해당 배열이 몇 차원으로 구성되어 있는지 확인해야 하는 경우가 종종 있는데, 이때 Rank 속성을 사용하면 아주 간단하게 차원 정보를 얻을 수 있습니다.사용법은 매우 직관적입니다. 배열 객체에 마침표(.) 연산자를 붙여 Rank를 호출하기만 하면 됩니다.arr.Rank여기서 arr은 차원을 확인하려는 대상 배열입니다.int[] arr = new int[5,5];GetLength로 행과 열 크기 확인하기배열의 차원 수뿐만 아니라 각 차

  9. C# 문자열 리터럴에서 @ 접두사의 역할과 사용법

    C#에서 @ 접두사(verbatim string literal)를 문자열 앞에 붙이면, 그 뒤에 오는 문자열 내부의 특수 문자를 이스케이프(escape) 처리할 필요가 없습니다. 즉, 역슬래시(\)를 일반 문자 그대로 해석합니다.이스케이프 생략 예제예를 들어 다음 두 문장은 완전히 동일한 결과를 가집니다.@D:\new위 코드는 아래와 같이 이스케이프 시퀀스를 사용한 문장과 같습니다.D:\\new일반 문자열에서는 \n이 줄바꿈으로 해석되지만, @ 접두사를 사용하면 경로 표현 시 매번 \\처럼 이중으로 역슬래시를 입력할 필요가 없어 파

  10. C# 네임스페이스(Namespace)란? 개념부터 사용 예제까지

    C# 네임스페이스란?네임스페이스(namespace)는 한 그룹의 이름을 다른 이름들과 분리하여 관리할 수 있도록 해주는 C#의 핵심 기능입니다. 대규모 프로젝트에서 클래스, 구조체, 인터페이스 등의 이름 충돌을 방지하고 코드를 체계적으로 구성하는 데 필수적인 역할을 합니다.C#에서 네임스페이스 정의는 namespace 키워드로 시작하며, 그 뒤에 네임스페이스 이름을 붙여 선언합니다.namespace namespace_name {   // 코드 선언부}네임스페이스 사용 예제다음 예제는 C#에서 서로 다른 두

  11. C# 동적 다형성(Dynamic Polymorphism) 개념과 예제로 쉽게 이해하기

    다형성(Polymorphism)은 객체 지향 프로그래밍의 핵심 개념 중 하나로, 크게 정적 다형성(Static Polymorphism)과 동적 다형성(Dynamic Polymorphism)으로 구분할 수 있습니다. 정적 다형성 vs 동적 다형성 정적 다형성은 함수 호출에 대한 응답이 컴파일 시점(Compile Time)에 결정되는 방식입니다. 메서드 오버로딩(Method Overloading)과 연산자 오버로딩(Operator Overloading)이 대표적인 예입니다. 반면 동적 다형성은 함수 호출에 대한 응답이 런타임(Runt

  12. C# RemoveAt 메서드 완벽 가이드 – 리스트에서 특정 위치의 요소 삭제하기

    C#의 RemoveAt 메서드는 리스트(List)에서 개발자가 지정한 인덱스 위치에 있는 요소를 제거할 때 사용합니다. 이 메서드는 System.Collections.Generic 네임스페이스의 List<T> 컬렉션뿐만 아니라 ArrayList에서도 동일하게 활용할 수 있습니다.1. 리스트에 요소 추가하기먼저 RemoveAt을 테스트하기 위해 문자열 리스트를 만들고 몇 가지 과목을 추가해 보겠습니다.var subjects = new List<string>(); subjects.Add(Physics); subje

  13. C#에서 float, double, decimal의 차이점 완벽 정리

    C#에서 float, double, decimal은 모두 값 형식(Value Type)에 해당하는 숫자 데이터 타입입니다. 세 가지 타입은 모두 실수를 다룰 수 있지만, 메모리 크기, 정밀도, 표현 범위에서 중요한 차이가 있어 용도에 맞게 선택하는 것이 매우 중요합니다.C#의 값 형식(Value Type)이란?값 형식 변수는 값을 직접 할당할 수 있는 타입으로, System.ValueType 클래스에서 파생됩니다. 참조 형식과 달리 값 형식은 데이터 자체를 스택(Stack) 메모리에 직접 저장하므로 접근 속도가 빠르고 관리가 단순합

  14. C#에서 do...while 루프를 사용하는 방법

    C#의 do...while 루프는 조건을 루프의 끝에서 검사하는 반복문입니다. 일반적인 while 루프와 비슷하지만, 가장 큰 차이점은 루프 본문이 최소 한 번은 반드시 실행된다는 것입니다.do...while 루프의 기본 문법do...while 루프는 다음과 같은 형태로 작성합니다.do {    실행할 문장;} while( 조건 );동작 원리조건식이 루프의 마지막에 위치하기 때문에, 조건을 검사하기 전에 루프 내부의 문장이 먼저 한 번 실행됩니다.이후 조건이 참(true)이면 제어 흐름이 다시 do로 돌아

  15. C# 중첩 클래스(Nested Class)란? 개념부터 활용 예제까지

    C# 중첩 클래스(Nested Class)란?중첩 클래스(nested class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미합니다. 중첩 클래스는 자신을 감싸고 있는 외부 클래스(바깥 클래스)의 멤버로 취급되며, 반대로 외부 클래스의 멤버라고 해서 중첩 클래스의 멤버에 자동으로 접근할 수 있는 것은 아닙니다. 즉, 두 클래스는 서로 독립적인 멤버 구조를 가집니다.이러한 특성 때문에 중첩 클래스는 특정 클래스와만 밀접하게 연관되는 보조 타입을 정의할 때 유용하게 사용됩니다. 관련된 타입을 하나의 클래스 안에 묶어두면 코드의

  16. C# 배열 클래스(Array Class)의 주요 메서드 총정리

    C#에서 Array 클래스는 모든 배열의 기본(base) 클래스로, System 네임스페이스에 정의되어 있습니다. 이 클래스는 배열을 생성하고 조작하는 데 유용한 다양한 메서드를 제공합니다. 아래에서 가장 많이 사용되는 Array 클래스의 핵심 메서드를 살펴보겠습니다.Array 클래스의 주요 메서드번호메서드 및 설명1Clear배열의 지정된 범위에 있는 요소를 요소 타입에 따라 0, false 또는 null로 설정합니다.2Copy(Array, Array, Int32)한 배열의 첫 번째 요소부터 시작하여 지정된 범위의 요소를 다른 배열

  17. C# 클래스의 정적 멤버(Static Member)란? 개념부터 예제까지

    C# 정적 멤버란 무엇인가? C#에서는 static 키워드를 사용하여 클래스 멤버를 정적(static)으로 정의할 수 있습니다. 클래스의 멤버를 static으로 선언하면, 해당 클래스의 객체를 몇 개를 생성하더라도 정적 멤버의 복사본은 단 하나만 존재합니다. 즉, 모든 객체가 이 하나의 멤버를 함께 공유하게 됩니다. static 키워드는 클래스당 멤버의 인스턴스가 오직 하나만 존재한다는 의미를 담고 있습니다. 정적 변수는 클래스의 인스턴스를 생성하지 않고도 클래스 이름만으로 값을 참조할 수 있기 때문에 상수를 정의할 때 특히 유용합

  18. C# 정적(static) 멤버 함수란? 개념부터 예제까지 한눈에 보기

    C# 정적 멤버 함수의 기본 개념C#에서 정적(static) 멤버 함수는 특정 객체(인스턴스)에 속하지 않고 클래스 자체에 소속되는 함수입니다. 따라서 객체를 생성하기 전에도 이미 존재하며, 클래스 이름만으로 바로 호출할 수 있습니다.정적 함수의 가장 중요한 특징은 다음과 같습니다.정적 변수만 접근 가능: 정적 함수 내부에서는 static으로 선언된 변수만 직접 다룰 수 있습니다. 일반 인스턴스 변수에는 접근할 수 없습니다.객체 생성 이전에 존재: 정적 함수는 프로그램 실행 시점에 메모리에 로드되므로, 객체가 만들어지기 전에도 사용

  19. C# 클래스의 기본 접근 한정자는 무엇일까?

    C#에서 접근 한정자(access modifier)를 명시하지 않으면 클래스의 기본 접근 수준은 Internal입니다. Internal 접근 지정자는 클래스가 현재 어셈블리(assembly) 안에 있는 다른 함수와 객체에 자신의 멤버 변수와 멤버 함수를 공개할 수 있도록 허용합니다.쉽게 말해, internal로 선언된 멤버는 해당 멤버가 정의된 응용 프로그램(어셈블리) 내부라면 어떤 클래스나 메서드에서든 자유롭게 접근할 수 있습니다. 반대로 어셈블리 외부에서는 접근이 허용되지 않습니다.참고로 최상위(top-level) 클래스의 기본

  20. C# 런타임 다형성 완벽 정리: 추상 클래스와 가상 함수로 배우는 동적 바인딩

    런타임 다형성(Runtime Polymorphism)은 메서드 오버라이딩(Method Overriding)을 기반으로 동작하며, 동적 바인딩(Dynamic Binding) 또는 늦은 바인딩(Late Binding)이라고도 불립니다. 이름에서 알 수 있듯이, 어떤 메서드가 호출될지는 컴파일 시점이 아닌 프로그램 실행 시점에 결정됩니다.C#에서는 추상 클래스(Abstract Class)와 가상 함수(Virtual Function)를 사용하여 런타임 다형성을 구현할 수 있습니다.추상 클래스(Abstract Class)추상 클래스는 하나

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:12/134  20-컴퓨터/Page Goto:1 6 7 8 9 10 11 12 13 14 15 16 17 18