C#2.0(2)
-
7장 - c#2.0 - 그외
?? 연산자 string txt = null; Console.WriteLine(txt ?? "(null)"); if, else나 3항 연산자인 ? : 를 사용할 필요없이 모 아니면 도로 사용할 수 있게 해주는 default 예약어 C#에서 변수를 명시적으로 초기화 하지 않았을 때 값형식은 0 참조형식은 null로 초기화 된다. 이렇게 미리 형식을 알고 있다면 초기화가 가능하겠지만 제네릭을 쓸 때는 미리 타입을 알 수 없으므로 뭔가 대책이 필요하다. 이때 default예약어를 쓰는데 default(T) 형식으로 쓴다. int t = default(int); Console.WriteLine(t); yield return / break 배열과 List등에 담긴 요소를 foreach로 순회할 수 있는 이유는 이..
2014.12.28 -
7장 - c#2.0 - 제네릭
으로 명시하며지정한 타입은 JIT 컴파일 타임에 기계어 코드를 만들어준다. 제네릭 클래스는public class GenericClass와 같은 형식. 제네릭 메서드는public static void Method1 (T item){}처럼 지정하면 된다. 제네릭은 박싱/언박싱으로 발생하는 힙낭비를 막고 코드 중복도 해결해 준다. 제약 조건 public class Utility { public static int Max(int item1, int item2) { if (item1.CompareTo(item2) >= 0) { return item1; } return item2; } } int 타입만 사용하는 이 코드를 제네릭을 적용하여 컴파일하면 어떻게 될까? public class Utility { publi..
2014.12.25