본문 바로가기

c#109

C# Convert 메서드 Convert.ToString(Int32, Int32) 정의 네임스페이스: System 어셈블리: System.Runtime.dll 32비트 부호 있는 정수 값을 지정된 기수에 해당하는 문자열 표현으로 변환합니다. value를 특정 진수로 변환한다. public static string ToString(int value, int toBase); 매개변수 value Int32 변환할 32비트 부호 있는 정수 toBase Int32 반환 값의 기수로서 2,8,10 또는 16 반환 String value 기수를 사용한 toBase의 문자열 표현 예외 ArgumentException toBase가 2, 8, 10 또는 16이 아님 Convert.ToInt32(String, Int32) 정의 네임스페이스: Sys.. 2023. 10. 12.
Effective C# Item 37 : 쿼리를 사용할 때는 즉시 평가보다 지연 평가가 낫다 쿼리를 사용할 때는 즉시 평가보다 지연 평가가 낫다 쿼리를 정의한다고 해서 결과 데이터나 시퀀스를 즉각적으로 얻어오는 것은 아니다. 실제로는 쿼리를 정의하는 작업은 수행 시에 어떤 과정으로 작업을 수행할지에 대한 절차만을 정의하는 것에 지나지 않는다. 일반적으로 이러한 방식이 더 효과적이며 실제로 쿼리의 결과를 이용하여 순회를 수행해야만 결과가 생성된다. 이를 지연 평가(lazy evaluation)라고 한다. 하지만 가끔은 이러한 동작 방식이 적절하지 않은 경우도 있다. 마치 일반 변수를 사용하는 것처럼 즉각적으로 그 값을 얻어와야 할 때도 있다. 이를 즉시 평가(eager evaluation)라고 한다. 지연 평가 (lazy evaluation) 즉시 평가 (eager evaluation) 쿼리를 작.. 2023. 10. 11.
Effective C# Item 38 : 메서드보다 람다 표현식이 낫다 메서드보다 람다 표현식이 낫다 람다 표현식을 이용하여 코드를 작성하다보면 동일한 코드를 반복하는 경우가 자주 발생한다. 다음의 코드도 바로 그러한 예다. var allEmployees = FindAllEmployees(); // 20년 이상 근속자 var earlyFolks = from e in allEmployees where e.Classification == EmployeeType.Salary where e.YearsOfService >= 20 where e.MonthlySalary < 4000 select e; // 20년 미만 근속자 var newest = from e in allEmployees where e.Classification == EmployeeType.Salary where e.Y.. 2023. 10. 11.
Effective C# Item 34 : 함수를 매개변수로 사용하여 결합도를 낮추라 함수를 매개변수로 사용하여 결합도를 낮추라 클래스 내의 메서드를 정의하기 위해서 베이스 클래스(Base class)나 인터페이스(Interface)를 정의하고 이렇게 정의된 내용을 기반으로 코딩을 한다. 혹은 함수를 매개변수로 취하는 방식을 활용한다면 기존의 컴포넌트나 라이브러리와 함께 사용해야 하는 코드를 개발할 때 상당히 큰 도움이 된다. 함수를 매개변수로 취한다는 것은 개발자가 더 이상 구상 타입(concreate type)을 작성할 필요가 없으며, 오히려 추상화된 정의를 통해 종속성을 다루는 것을 의미한다. 인터페이스와 클래스를 구분하는 것에는 반드시 익숙해져야 한다. 하지만 때로는 인터페이스를 정의하고 구현하는 것조차 성가신 경우가 있으며 전통적인 객체지향 기법과는 다른 기법을 사용하여 API를.. 2023. 9. 27.
Effective C# Item 7 : 델리게이트를 이용하여 콜백을 표현하라 콜백(CallBack)이란? 프로그래머는 함수를 호출할 때 콜(Call)을 하여 호출한다. 콜백(CallBack)은 콜의 반대되는 개념으로 함수가 언제 실행될지에 대한 권한을 전적으로 위임한다. 기능만을 구현한 채 전달하고 언제 실행될지는 모른다. C#은 이러한 콜백 함수를 구현하기 위해 Delegate 문법을 제공한다. 델리게이트를 이용하여 콜백을 표현하라 콜백은 서버가 클라이언트에게 비동기적으로 피드백을 주기 위해서 주로 사용하는 방법이다. 이를 위해 멀티스레딩 기술도 사용되고, 동기적으로 상태를 갱신하는 기법도 활용된다. 콜백은 C#에서 델리게이트를 이용하여 표현된다. 델리게이트를 이용하면 타입 안정적인 콜백을 정의할 수 있다. 대부분의 경우에 델리게이트는 event와 함께 사용되지만 반드시 그래야.. 2023. 9. 26.
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.