본문 바로가기

프로그래밍/C#101

C# IEnumerable, IEnumerator에 대해서 IEnumerator 열거자를 구현하는데 필요한 인터페이스, 클래스 내부의 컬렉션에 대해 반복할 수 있도록 도와준다. public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); } IEnumerator는 반복자 구현에 필요한 함수 3가지를 구현하게 강제하는 인터페이스이다. 반복자를 구현하기 위해서는 최소 위의 3개의 함수를 알아서 구현하면 된다라고 틀을 잡아준다. Current 읽기 전용 프로퍼티로 현재 위치의 데이터를 object 타입으로 리턴한다. MoveNext() 다음 위치로 이동하는데 다음 위치에 데이터가 있으면 true 없으면 false 그래서 보통 컬렉션 인덱스를 1씩 증가시켜 컬렉션의 끝에 도달했.. 2023. 10. 5.
C# 정수 숫자 형식 2진수, 10진수, 16진수 2진수(Binary Number) 0과 1의 2가지 조합으로 표현된다. 10진수와 구분하기 위해 앞에 0b를 붙인다. 0b00, 0b01, 0b10, ob11 컴퓨터에게 자연스러운 수 10진수(Decimal Number) 0 1 2 3 4 5 6 7 8 9의 10가지 조합으로 표현된다. 사람에게 자연스러운 수 16진수(Hexadecimal) 0 1 2 3 4 5 6 7 8 9 A B C D E F의 16가지 조합으로 표현된다. 10진수와 구분하기 위해서 0x를 붙인다. 0x00 0x01 .... 0xFF 4자리의 2진수를 1자리의 16진수로 줄여 쓸 수 있다는 장점이 있다. 정수 형식의 특성 정수 숫자 형식은 정수(Integer)를 표현한다. 모든 정수 숫자 형식은 값 형식이.. 2023. 9. 26.
사용자 정의 명시적, 암시적 변환 연산자(explicit, implicit) 사용자 정의 명시적, 암시적 변환 연산자 명시적 변환 연산자 : explicit operator 암시적 변환 연산자 : implicit operator public static implicit operator byte(Digit d) => d.digit; public static explicit operator Digit(byte b) => new Digit(b); (C++에는 explicit 키워드가 있는데 해당 키워드를 생성자에 추가하면 암시적인 형변환을 제한한다. 오직 명시적 형변환 만을 허용) 예제 코드 using System; public readonly struct Digit { private readonly byte digit; public Digit(byte digit) { if (digi.. 2023. 9. 25.
C# Substring 복습하기 Substring(int32) 문자열에서 부분 문자열을 검색한다. 부분 문자열로 지정된 문자 위치에서 시작하고 문자열 끝까지 계속된다. public string Substring (int startIndex); 매개 변수 startIndex substring에 있는 0부터 시작하는 문자 위치 Substring(int32, int32) 문자열에서 부분 문자열을 검색한다. 부분 문자열은 지정된 문자 위치에서 시작하고 길이를 지정한다. public string Substring (int startIndex, int length); *이 메서드는 현재 instance 값을 수정하지 않고 startIndex length로 지정된 새 문자열을 반환합니다. 매개 변수 startIndex substring에 있는 0부.. 2023. 9. 20.
C# Math.Sqrt(Double) vs Math.Pow(Double, Double) Math.Sqrt() 네임스페이스: System 어셈블리: System.Runtime.dll 지정된 숫자의 제곱근을 반환합니다. public static double Sqrt (double d); d Double 제곱근을 구할 숫자 예제 코드 class Program { static void Main(string[] args) { Console.WriteLine($"제곱근 : {Math.Sqrt(9)}"); // 제곱근 : 3 } } Math.Pow() 네임스페이스: System 어셈블리: System.Runtime.dll 지정된 숫자의 지정된 거듭제곱을 반환한다. public static double Pow(double x, double y); x Double 거듭제곱할 배정밀도 부동 소수점 숫자입니다.. 2023. 8. 28.
Environment.TickCount Environment.TickCount 이란? 시스템 시작 이후 경과 시간(밀리초)을 가져온다. 네임스페이스: System 어셈블리: System.Runtime.dll public static int TickCount { get; } 컴퓨터가 마지막으로 시작된 이후 경과된 시간(밀리초)을 포함하는 부호 있는 32비트 정수이다. 예제 코드 // Sample for the Environment.TickCount property. // TickCount cycles between Int32.MinValue, which is a negative // number, and Int32.MaxValue once every 49.8 days. This sample // removes the sign bit to yie.. 2023. 8. 24.