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

C#

  1. C# 공변성(Covariance)과 반공변성(Contravariance) 쉽게 이해하기

    C#에서 클래스를 더 유연하고 효율적으로 다루려면 공변성(Covariance)과 반공변성(Contravariance) 개념을 반드시 이해해야 합니다. 이 두 개념은 상속 관계에 있는 타입 간의 변환 규칙을 정의하며, 배열·인터페이스·델리게이트 등 다양한 곳에서 활용됩니다.예제 클래스 구조설명을 위해 세 개의 클래스를 준비합니다. One은 Two의 기본 클래스이고, Two는 다시 Three의 기본 클래스입니다.class One { } class Two : One { } class Three : Two { }공변성(Covarianc

  2. C# 문자열에서 n번째 문자 제거하는 방법

    C#에서 문자열의 특정 위치에 있는 문자를 제거하려면 StringBuilder 클래스의 Remove() 메서드를 활용할 수 있습니다. 이 메서드는 삭제를 시작할 인덱스와 제거할 문자 수를 매개변수로 받습니다.먼저 문자열을 설정합니다.string str1 = "Amit"; Console.WriteLine("Original String: "+str1);인덱스는 0부터 시작하므로, 네 번째 문자(t)를 삭제하려면 인덱스 3을 지정해야 합니다.StringBuilder strBuilder = new Str

  3. C# ArrayList 클래스의 Item 속성 완벽 가이드

    C#에서 ArrayList 클래스의 Item 속성은 지정된 인덱스에 위치한 요소를 가져오거나 설정하는 데 사용됩니다. 컬렉션 내 특정 위치의 데이터에 접근할 때 필수적인 기능입니다.Item 속성의 특징: 인덱서(Indexer)Item 속성은 사실상 인덱서(indexer)로 구현되어 있습니다. 따라서 속성 이름을 명시적으로 작성하지 않고도 대괄호([]) 연산자만으로 간편하게 사용할 수 있습니다.예를 들어, 아래 코드처럼 arrList[1] 형태로 바로 접근할 수 있습니다.Console.WriteLine(Element {0} is \{

  4. C#으로 두 정수의 나머지를 구하는 프로그램 작성 방법

    C#에서는 나머지 연산자(%)를 사용하면 두 정수를 나눈 후의 나머지 값을 손쉽게 구할 수 있습니다. 이번 글에서는 두 개의 정수를 입력받아 나머지를 반환하는 프로그램을 단계별로 작성해 보겠습니다.1. 두 숫자 설정하기먼저 나눗셈에 사용할 두 개의 정수 변수를 선언하고 값을 할당합니다.int one = 250; int two = 200;2. 나머지를 계산하는 함수 만들기이제 위에서 선언한 두 숫자를 아래 함수에 전달하여 나머지를 계산합니다.public int RemainderFunc(int val1, int val2) {  

  5. C# BitArray 클래스의 IsReadOnly 속성이란? 사용법과 예제 총정리

    BitArray 클래스란?C#의 BitArray 클래스는 비트(bit) 값을 저장해야 하지만 저장할 비트의 개수를 미리 알 수 없는 경우에 유용하게 사용되는 컬렉션 클래스입니다. 필요에 따라 동적으로 비트 배열을 생성하고 관리할 수 있어 메모리 효율적인 비트 연산 작업에 적합합니다.IsReadOnly 속성의 역할IsReadOnly 속성을 사용하면 해당 BitArray 객체가 읽기 전용(Read Only) 상태인지 여부를 나타내는 불리언(Boolean) 값을 확인할 수 있습니다.true 반환 시: BitArray가 읽기 전용이므로 새

  6. C#으로 두 행렬의 합 구하기 – 단계별 완전 가이드

    행렬 덧셈은 두 행렬에서 같은 위치에 있는 원소끼리 서로 더하는 가장 기본적인 행렬 연산입니다. 이 글에서는 C#을 사용하여 두 개의 3x3 정방행렬(9개의 원소를 가진 행렬)을 입력받고, 두 행렬의 합을 계산한 뒤 결과를 출력하는 프로그램을 단계별로 살펴보겠습니다.1단계: 세 개의 2차원 배열 선언먼저 세 개의 2차원 배열을 선언합니다. 앞의 두 배열(arr1, arr2)은 사용자가 입력할 행렬을 저장하고, 세 번째 배열(arr3)은 두 행렬을 더한 결과를 담게 됩니다.int[] arr1 = new int[20, 20]; int[

  7. C# Hashtable 클래스의 Keys 속성 완벽 가이드

    C#에서 Hashtable 클래스의 Keys 속성은 해시테이블에 저장된 모든 키를 담고 있는 ICollection을 반환합니다. 이 속성을 활용하면 해시테이블 내부의 전체 키 목록에 손쉽게 접근할 수 있습니다.Keys 속성의 기본 사용법Keys 속성으로 얻은 컬렉션은 foreach 루프를 통해 간단히 순회할 수 있습니다. 아래 코드는 루프를 사용하여 해시테이블의 모든 키를 하나씩 출력하는 기본적인 방법을 보여줍니다.foreach (int k in h.Keys) {    Console.WriteLi

  8. C# 중첩 클래스(Nested Class) 개념과 사용 예제 완벽 정리

    C# 중첩 클래스란?중첩 클래스(Nested Class)는 다른 클래스 내부에 선언된 클래스를 의미합니다. 중첩 클래스는 자신을 감싸고 있는 외부 클래스(Enclosing Class)의 멤버로 취급되며, 반대로 외부 클래스의 멤버는 중첩 클래스의 멤버에 직접 접근할 수 없다는 점이 특징입니다.즉, 두 클래스는 서로 독립적인 접근 규칙을 가지며, 중첩 클래스에 접근하려면 외부 클래스 이름을 통해 명시적으로 참조해야 합니다.중첩 클래스 예제 코드다음은 C#에서 중첩 클래스를 선언하고 사용하는 방법을 보여주는 코드 예제입니다.class

  9. C#에서 암호학적으로 안전한 난수 생성하기 – RNGCryptoServiceProvider 완벽 가이드

    암호학적으로 안전한 난수가 필요하다면 RNGCryptoServiceProvider 클래스를 사용하는 것이 좋습니다. 이 클래스는 암호화 서비스 공급자(CSP) 기반의 암호학적 난수 생성기를 구현하며, 일반적인 Random 클래스보다 예측 가능성이 훨씬 낮아 보안이 중요한 작업에 적합합니다.RNGCryptoServiceProvider로 난수 값 얻기동일한 클래스를 활용하면 다음과 같은 방식으로 안전한 무작위 값을 손쉽게 얻을 수 있습니다.using (RNGCryptoServiceProvider crypto = new RNGCrypto

  10. C# 인터페이스 유형 완벽 정리: IEnumerable부터 IDictionary까지

    C# 인터페이스란?인터페이스(Interface)는 속성(Property), 메서드(Method), 이벤트(Event)를 정의하며, 이 요소들이 곧 인터페이스의 멤버가 됩니다. 인터페이스에는 멤버에 대한 선언만 포함되고, 실제 구현은 해당 인터페이스를 상속받는 클래스에서 이루어진다는 점이 핵심 특징입니다.C#의 주요 인터페이스 유형IEnumerable − 모든 제네릭 컬렉션의 기본이 되는 인터페이스입니다.IList − 배열(Array)과 List 타입이 구현하는 제네릭 인터페이스로, 인덱스 기반 접근을 지원합니다

  11. C# 상속 클래스의 객체 생성 방법 완벽 가이드

    C#에서는 하나의 클래스가 여러 개의 클래스나 인터페이스로부터 파생될 수 있으며, 이를 통해 여러 기반 클래스(base class) 또는 인터페이스로부터 데이터와 기능을 상속받을 수 있습니다.상속과 객체 생성의 기본 원리파생 클래스(derived class)는 기반 클래스의 멤버 변수와 멤버 메서드를 그대로 상속받습니다. 따라서 하위 클래스(자식 클래스)의 객체를 생성하기 전에 반드시 상위 클래스(부모 클래스)가 먼저 초기화되어야 합니다.C#에서는 base 키워드를 활용한 멤버 초기화 목록(member initialization l

  12. C# Nullable DateTime 사용법 – 날짜/시간 타입에 null 값 할당하기

    C#에서 Nullable DateTime을 사용하면 값 타입인 DateTime에도 null 값을 할당할 수 있습니다. 일반적으로 값 타입은 null을 가질 수 없지만, 물음표(?) 문법을 활용하면 null 허용(nullable) 형식으로 선언할 수 있습니다.Nullable DateTime 선언 문법Nullable DateTime은 다음과 같이 타입 뒤에 물음표를 붙여 선언합니다.DateTime?이렇게 선언된 변수에는 실제 날짜/시간 값 또는 null을 모두 저장할 수 있어, 데이터베이스의 NULL 날짜 컬럼을 다룰 때 특히 유용합니

  13. C# SortedList 클래스의 IsFixedSize 속성 완벽 이해하기

    C#에서 IsFixedSize 속성은 SortedList 객체가 고정된 크기를 갖는지 여부를 나타내는 불리언(Boolean) 값을 반환합니다. 크기가 고정되어 있으면 true, 요소를 자유롭게 추가하거나 제거할 수 있으면 false를 리턴합니다.일반적인 방법으로 생성한 SortedList는 동적으로 크기가 조절되므로 대부분 false를 반환합니다. 반면, 고정된 배열을 기반으로 래퍼(Wrapper)를 만들어 생성한 경우에는 true가 됩니다.IsFixedSize 속성 사용 예제다음 예제는 SortedList에 요소를 추가한 후 Is

  14. C#에서 타원 그리기 – Graphics 객체의 DrawEllipse() 메서드 활용법

    C#에서 타원 그리기C#에서 타원을 그리려면 Graphics 객체가 제공하는 DrawEllipse() 메서드를 사용하면 됩니다. 이 메서드는 선의 색상과 두께를 지정하는 Pen 객체, 그리고 타원의 위치와 크기를 정의하는 Rectangle 객체를 매개변수로 받습니다.참고로 C#에서 도형을 그리려면 먼저 Windows Form 프로젝트를 생성해야 합니다.1. Graphics 객체 설정그리기 작업을 수행할 Graphics 객체를 생성합니다.Graphics g = this.CreateGraphics();2. Pen 객체 생성타원의 테두리

  15. C# 비교 연산자 연결(Chaining) 이해하기 – 연산자 우선순위와 결합 방향

    C#에는 왼쪽에서 오른쪽(left-to-right), 또는 오른쪽에서 왼쪽(right-to-left)으로 결합되는 다양한 연산자가 존재합니다. 그중에서도 연산자 연결(chaining)은 우선순위가 같은 연산자들이 왼쪽에서 오른쪽으로 결합하는 특성에 기반해 동작합니다. 연산자 우선순위(Operator Precedence)란? 연산자 우선순위는 하나의 표현식 안에서 항(term)들이 어떻게 그룹화되는지를 결정하며, 표현식이 평가되는 순서에 직접적인 영향을 미칩니다. 예를 들어 곱셈 연산자(*)는 덧셈 연산자(+)보다 높은 우선순위를 가

  16. C# 문자 상수(Character Constants)와 문자열 리터럴(String Literals) 완벽 정리

    C#의 문자 상수(Character Constants)C#에서 문자 리터럴(character literal)은 작은따옴표( )로 감싸서 표현합니다. 예를 들어 x처럼 작성하며, char 타입의 단일 변수에 저장할 수 있습니다. 문자 리터럴은 다음 세 가지 형태로 나타낼 수 있습니다.일반 문자: x, A, 가 등의 평범한 단일 문자이스케이프 시퀀스(Escape Sequence): \t(탭), \n(줄바꿈) 등 백슬래시와 결합된 특수 문자유니버설 문자(Universal Character): \u02C0처럼 유니코드 값을 이용해 표현한

  17. C# SortedList 클래스의 IsReadOnly 속성 완벽 가이드

    C#의 IsReadOnly 속성은 SortedList 컬렉션이 읽기 전용(read-only)인지 여부를 나타내는 값을 반환합니다. 이 속성은 bool 타입으로, 컬렉션에 요소를 추가하거나 수정할 수 있으면 false, 읽기 전용이면 true를 반환합니다. IsReadOnly 속성의 기본 개념 SortedList는 키(key)를 기준으로 자동 정렬되는 키-값 쌍 컬렉션입니다. 일반적인 방법으로 생성한 SortedList 인스턴스는 읽기 전용이 아니기 때문에 IsReadOnly 속성은 항상 false를 반환합니다. 예제 코드 살펴보기

  18. C#에서 파일이 숨겨져 있는지 확인하는 방법 (FileAttributes 활용)

    C#에서 파일의 속성을 확인하려면 FileAttributes 열거형(Enumeration)을 사용하면 됩니다. 이 열거형에는 Compressed, Directory, Hidden 등 다양한 멤버가 포함되어 있어 파일의 여러 가지 특성을 손쉽게 조회할 수 있습니다. 파일 숨김 여부 확인하기 파일이 숨겨져 있는지 확인하려면 FileAttributes.Hidden 멤버를 사용합니다. 만약 해당 파일에 FileAttributes.Hidden 값이 설정되어 있다면, 그 파일은 숨김 상태임을 의미합니다. 먼저 속성을 확인할 파일의 경로(pat

  19. C#에서 파일 존재 여부 확인하기 – File.Exists 메서드 완벽 가이드

    C#에서 특정 파일이 실제로 존재하는지 확인해야 하는 경우가 자주 있습니다. 예를 들어, 프로그램이 설정 파일을 읽기 전에 해당 파일이 있는지 먼저 검사하면 FileNotFoundException 같은 런타임 오류를 미리 방지할 수 있습니다.C#에서는 System.IO 네임스페이스에 포함된 File.Exists() 메서드를 사용하여 파일의 존재 여부를 간단하게 확인할 수 있습니다. 이 메서드는 파일이 존재하면 true, 존재하지 않으면 false를 반환합니다.현재 디렉터리에서 파일 확인하기먼저, 프로그램이 실행되는 현재 디렉터리에

  20. C# Hashtable 클래스의 IsFixedSize 속성 완벽 가이드

    C#에서 Hashtable의 IsFixedSize 속성이란?C#의 Hashtable 클래스는 IsFixedSize 속성을 제공합니다. 이 속성은 해당 Hashtable이 고정 크기(fixed size)를 갖는지 여부를 나타내는 bool 값을 반환합니다.Hashtable의 크기가 고정되어 있으면 true를 반환합니다.요소를 자유롭게 추가하거나 제거할 수 있는 일반적인 Hashtable이라면 false를 반환합니다.일반적으로 new Hashtable()로 생성한 컬렉션은 크기가 동적으로 조절되므로, 이 속성은 항상 false를 반환하게

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:69/134  20-컴퓨터/Page Goto:1 63 64 65 66 67 68 69 70 71 72 73 74 75