반응형 전체 글109 [Effective C#] Item6 ~ Item 10 [Item6] nameof 연산자를 적극 확용하라. 항상 로컬이름을 문자열로 반환하는 역할을 한다. 심볼의 이름을 평가하며 타입, 변수, 인터페이스, 네임스페이스 에 대해 사용할 수 있다. 심볼의 이름을 바꾸거나 수정할 때도 손쉽게 반영 가능하다. 항상 로컬 이름을 문자열로 반환한다. Ex) 완전 정규화된 이름이 System.Int.MaxValue 이더라도 항상 로컬이름 MaxValue를 반환 [Item7] delegate를 이용하여 콜백을 표현하라. delegate를 이용하면 타입 안정적인 콜백을 정의할 수 있다. .Net Framework 라이브러리는 Predicate, Action, Func와 같은 형태로 자주 사용되는 delegate를 정의해두고 있다. 더보기 Predicate : 조건을 검사하여.. 2022. 7. 8. [Effective C#] Item1 ~ Item5 [Item1] 지역변수를 선언할 때는 var를 사용하는 것이 낫다. C# 언어가 익명 타입을 지원한다. 개발자가 코드를 읽을때 쉽게 짐작할 수 없다면 명시적 타입을 기술하는것이 낫다. [Item2] Const 보다는 readonly가 좋다. 컴파일 타임 상수(Const)보다는 런타임 상수(readonly)를 사용하라 컴파일 타임 상수는 성능이 매우 중요하고 상수의 값이 절대 바뀌지 않을때만 사용 더보기 컴파일타임과 런타임 - 컴파일 타임 : 작성된 코드를 컴파일 과정을 통해 실행 가능한 프로그램으로 편집하는 과정 - 런타임 : 컴파일 과정을 마친 프로그램을 동작 시키는 과정 런타임 상수는 메서드 내에서 선언할 수 없다.(컴파일은 가능) 컴파일 타임 상수는 내장된숫자형, enum, 문자열, null 만 가.. 2022. 7. 8. [c#] delegate 와 Event delegate[델리게이트] 선언 : delegate 반환형 이름(매개변수...); 메소드의 참조(ex.매개변수)를 포함 하여 인스턴스화 하여 작동 반환 형과 매개변수가 모두 같아야함 Class A { delegate int TDelegate(int a, int b);//델리게이트 선언 int Plus(int a, int b) { return a + b; } int Minus(int a, int b) { return a - b; } void Main() { TDelegate td1 = Plus; TDelegate td2 = delegate(int a, int b) { return a / b; }; Console.WriteLine(tb1(5,10));//15출력 Console.WriteLine(tb2(10.. 2022. 6. 30. [c#] 추상클래스와 추상 메서드(abstract) abstract 란? 클래스, 메서드, 프로퍼티, 인덱서, 이벤트와 함께 사용할 수 있다. abstract가 사용되면 파생클래스에서 반드시 구현되어야 한다. 추상 클래스 추상 클래스는 인스턴스화 될 수 없다.(객체를 생성할 수 없음) 변수와 메서드의 선언은 일반 클래스와 동일하게 할 수 있다. 상속을 제한하는 sealed와는 같이 사용할 수 없다. 추상 메서드 추상메서드 선언은 추상 클래스에서만 가능하다. 기본적인 동작은 가상함수와 동일하지만 파생 클래스에서 추상메소드는 반드시 구현해야한다. 추상 메서드는 구현부가 존재하지 않는다.(파생 클래스에서만 구현 가능) 파생클래스에서 override 키워드를 통해 재정의 한다. private, static, virtual 키워드와는 사용 불가능 하다. 예시 pu.. 2021. 8. 20. 이전 1 ··· 15 16 17 18 19 20 21 ··· 28 다음 반응형