C#190 [C#]IEnumerable 인터페이스란? IEnumerable 인터페이스란? IEnumerable은 List, Stack, Queue와 같은 컬렉션에 반복이 필요한 경우 사용되는 인터페이스입니다. 기본적으로 컬렉션은 이미 IEnumerable 인터페이스를 가지기 때문에 foreach문을 사용하여 컬렉션 요소들을 반복적으로 접근할 수 있습니다. 이번 포스팅에서는 IEnumerable 인터페이스와 사용자 정의 컬렉션 클래스에서 IEnumerable를 구현하는 방법을 설명합니다. 목차 IEnumerable 인터페이스 IEnumerator 인터페이스 컬렉션 클래스 열거 사용자 정의 컬렉션 클래스에서 IEnumerable 구현 IEnumerable 인터페이스 IEnumerable 인터페이스는 다음과 같이 구현되어있습니다. public interface .. C# 2022. 2. 6. [C#]동적 변수(dynamic) 동적 타입이란? 동적 타입은 C# 4.0에서 추가되었으며 dynamic 키워드로 변수를 선언하여 컴파일 타임에 타입 검사를 방지하기 위해 사용합니다. 대신 런타임에 타입을 확인합니다. var 타입과 가장 큰 차이점은 var 타입은 컴파일러가 초기화 값을 기반으로 변수의 타입을 결정하지만, dynamic 타입은 런타임에 타입이 결정됩니다. dynamic intValue = 10; dynamic strValue = "init string"; dynamic 키워드를 사용하여 동적 변수를 선언하며, 대부분의 컴파일러는 동적 타입의 변수를 객체(Object) 타입으로 컴파일합니다. 하지만, 실제 타입은 런타임에 결정됩니다. var 타입으로 선언된 변수의 getType() 메서드를 호출하기 위해 strValue.g.. C# 2022. 2. 5. [C#]익명 타입(Anonymous Type) 익명 타입(Anonymous Type)이란? 익명 타입은 C# 3.0에서 추가된 키워드로 타입이 지정되지 않은 변수를 var 키워드로 선언할 수 있습니다. 익명 타입으로 변수를 선언하는 경우 변수 초기화 값을 기반으로 컴파일러가 변수의 타입을 자동으로 결정합니다. var str = "str"; Console.WriteLine(str.GetType()); // System.String 변수 str은 익명 타입으로 선언되었지만, 초기화 값이 문자열이므로 컴파일러가 변수 str을 문자열 타입이라고 결정합니다. GetType() 메서드를 사용하여 str의 타입이 String인 것을 확인할 수 있습니다. 이번 포스팅은 익명 타입에 대해 설명합니다. 목차 익명 타입으로 변수 선언 및 주의사항 반복문에서 사용 읽기 .. C# 2022. 2. 5. [C#]StringBuilder 사용 방법 StringBuilder란? C#의 StringBuilder는 변경할 수 없는 string과 달리 변경 가능한 문자열을 나타내는데 사용하는 클래스입니다. string 객체는 값이 변경되면 메모리에서 이전 참조 값을 버리고 새로운 참조 값으로 변경되지만, StringBuilder 객체는 참조 값이 변경되지 않고 힙 메모리에서 값이 삽입, 추가, 제거됩니다. 이번 포스팅에서는 StringBuilder 클래스 사용 방법을 설명합니다. 관련 포스팅 ☞ [C#]Mutable과 Immutable(가변과 불변) ☞ [C#]값 형식(Value Types)과 참조 형식(Reference Types) 목차 StringBuilder 객체 생성 및 초기화 StringBuilder 사이즈 StringBuilder 클래스의 메서.. C# 2022. 2. 5. [C#]List 특정 값 존재하는지 체크하는 방법 이번 포스팅은 C#의 List에서 특정 값이 존재하는지 체크하는 방법을 소개합니다. 목차 Contains() 함수 Exists() 함수 FindIndex() 함수 데이터 형식이 객체인 List Contains() 함수 Contains() 함수 구문은 다음과 같습니다. public bool Contains (T item); item은 List 에서 찾을 객체(또는 값)이며, item이 클래스의 객체 또는 배열과 같은 참조 타입에 대해서 값은 null이 될 수 있습니다. item이 존재하면 Contain() 함수는 True를 반환하고 그렇지 않으면 False를 반환합니다. 다음은 Contains() 함수 사용 예제입니다. class Program { static void Main(string[] args) .. C# 2022. 1. 24. [C#]Mutable과 Immutable(가변과 불변) 가변(Mutable)과 불변(Immutable) 가변(Mutable)은 "변경할 수 있는"을 의미하며, 불변(Immutable)은 "변경할 수 없는"을 의미하는 단어입니다. 이 단어는 프로그래밍 언어에서도 동일한 의미를 가집니다. 변경 가능한 타입은 인스턴스가 생성된 후 값이 변경될 수 있지만, 변경 불가능한 타입은 인스턴스가 생성된 후 값을 변경할 수 없는 타입입니다. C#에는 불변 클래스인 string과 가변 클래스인 StringBuilder가 존재하는데, 이번 포스팅에서는 string과 StringBuilder 클래스로 불변과 가변에 대해 설명합니다. string string은 변경할 수 없는 타입입니다. 문자열 변수는 스택(Stack)에 생성되며, 힙(Heap)에 생성되는 문자열 주소를 참조합니다.. C# 2022. 1. 18. [C#]인덱서 사용 방법 인덱서란? 인덱서(Indexers)는 클래스의 멤버로 클래스의 값을 배열처럼 접근할 수 있도록 해주는 문법입니다. 이번 포스팅에서는 인덱서 사용 방법을 소개합니다. 목차 인덱서를 사용하지 않는 경우 인덱서 정의 방법 인덱서를 사용하지 않는 경우 다음 예제처럼 배열은 인덱스를 사용하여 해당 위치의 값을 접근할 수 있습니다. class Program { static void Main(string[] args) { int[] numArray = { 1, 2, 3, 4 }; Console.WriteLine("0번째 인덱스의 값: " + numArray[0]); Console.WriteLine("2번째 인덱스의 값: " + numArray[2]); } } 실행 결과 다음은 클래스 인스턴스에서 객체를 배열처럼 사용.. C# 2022. 1. 17. [C#]열거형 사용 방법 열거형이란? 열거형(Enum)은 미리 정의된 상수들이 나열된 집합입니다. 예를 들어 요일이라는 열거형은 월, 화, 수, 목, 금, 토, 일만 될 수 있으며, 성별이라는 열거형은 알 수 없음, 남자, 여자만 될 수 있습니다. 이번 포스팅에서는 열거형에 대해 소개합니다. 목차 열거형의 필요성 열거형 특징 열거형에서 사용 가능한 함수 열거형의 필요성 다음은 열거형을 사용하지 않은 예제입니다. Person 클래스에는 Name과 Gender 속성이 존재하며, Gender의 값은 다음과 같이 정의됩니다. 0: 성별을 알 수 없음 1: 남자 2: 여자 0, 1, 2가 아닌 값은 잘못 입력된 값 public class Person { public string Name { get; set; } public int Gen.. C# 2022. 1. 17. [C#]Hashtable 사용 방법 Hashtable이란? C#의 Hashtable은 "Key-Value" 구조를 가지는 컬렉션입니다. 키(Key)는 데이터를 식별하기 위해 필요한 정보를 가지며, Hashtable에서 키는 모든 데이터 타입이 될 수 있습니다. 값(Value)은 키에 매핑되는 데이터입니다. 이번 포스팅에서는 Hashtable의 필요성과 사용 방법을 소개합니다. 목차 Array와 ArrayList의 문제점 Hashtable 사용 방법 Hashtable 객체에서 특정 키와 값이 존재하는지 체크 Array와 ArrayList의 문제점 Array 또는 ArrayList의 인덱스를 사용하여 "Key-Value" 구조를 만들 수 있습니다. 인덱스 위치를 Key라는 개념으로 접근하여 값을 설정하는 방법입니다. 하지만, 이 방법은 개발자.. C# 2022. 1. 12. [C#]콘솔(Console) 입력 및 출력 콘솔(Console)이란? 콘솔(Console) 클래스는 "System" 네임 스페이스에서 사용할 수 있습니다. 이 클래스는 콘솔 응용 프로그램에서 사용자 인터페이스를 구현할 수 있는 속성과 함수를 제공합니다. 콘솔 클래스에서 사용할 수 있는 모든 속성과 함수는 정적이므로 Console 인스턴스를 생성하지 않아도 Console 이름으로 속성과 함수를 사용할 수 있습니다. 이번 포스팅에서는 콘솔 클래스의 다양한 기능과 사용 방법을 소개합니다. 목차 Console 클래스의 속성 Console 클래스의 함수 Console 클래스 사용 방법 Console 클래스의 속성 속성(Property) 설명 Title 콘솔 응용 프로그램의 제목을 설정합니다. BackgroundColor 텍스트의 배경색을 설정합니다. Fo.. C# 2022. 1. 9. [C#]ToString 재정의 이번 포스팅에서는 C#에서 ToString() 함수를 재정의해야 하는 이유에 대해 소개합니다. 목차 ToString() 함수를 재정의해야 하는 이유 ToString() 함수 재정의 방법 Visual Studio에서 ToString() 함수 재정의 단축키 ToString() 함수를 재정의해야 하는 이유 C#에서 모든 자료형들은 최상위 클래스인 Object 클래스에서 파생됩니다. Object 클래스에는 값을 문자열로 반환하는 ToString() 함수가 존재하는데, 모든 자료형들은 Object 클래스에서 파생되므로 ToString() 함수를 사용할 수 있습니다. 다음 예제는 int형 변수에 ToString() 함수를 호출하여 값을 문자열로 반환합니다. int intValue = 10; string strVal.. C# 2022. 1. 9. [C#]Equals 재정의 이번 포스팅에서는 C#에서 Equals() 함수를 재정의해야 하는 이유에 대해 소개합니다. 목차 Equals() 함수와 == 연산자의 차이 Equals() 함수 재정의 방법 Equals() 함수와 == 연산자의 차이 C#의 자료형에 대해 공부하신 분들은 아시겠지만, C#에서 모든 자료형은 Object 클래스에서 직접 또는 간접적으로 상속됩니다. Object 클래스에는 Equals() 함수가 존재하는데, 모든 자료형은 Object 클래스에서 파생되므로 Equals() 함수를 사용할 수 있습니다. 다음은 == 연산자와 Equals() 함수를 사용하는 예제입니다. int a = 10; int b = 10; Console.WriteLine(a == b); // true Console.WriteLine(a.Equ.. C# 2022. 1. 9. 이전 1 ··· 8 9 10 11 12 13 14 ··· 16 다음