본문 바로가기

제네릭

불필요한 Exceptions 을 사용하지 않고 TryParse 메소드 사용하기 불필요한 Exceptions 을 사용하지 않고 TryParse 메소드 사용하기 - 적용 NET 2.0 - 이렇게 하세요!! .net 데이터타입의 값을 형변환을 할때 TryParse 메소드를 사용하시기 바랍니다. 예를 들면 Int32.TryParse 는 string 값을 integer 로 데이터 형을 변환하기전에 사용하시기 바랍니다. - 왜??? Parse 메소드는 exception 을 throw 할 것입니다. 형변환이 잘못되면 ArgumentNullexception 또는 FormatException ,OverflowException 이 발생됩니다. 불필요한 Exception 의 Throw 는 어플리케이션의 수행에 부정적인 영향을 줍니다. TryParse 메소드는 exception 를 throw 하지 않습..
객체 정보를 얻기위해 Reflection 을 사용해 보자 우리는 가끔 런타임시에 어떤 객체에 대해 필드,속성,이벤트를 알고자 할 때가 간혹 있을 것입니다. 이를 한번 가져오는 코딩을 해 볼까 합니다. 먼저 MyObject 클래스에 필드, 속성, 이벤트를 기재했습니다. public class MyObject { //public 필드 public string myStringField; public int myIntField; public MyObject myObjectField; //public 속성 public string MyStringProperty { get; set; } public int MyIntProperty { get; set; } public MyObject MyObjectProperty { get; set; } //public 이벤트 publi..
C# ENUM 키워드의 Description 를 이용하여 값을 가져오기 이번에는 enumeration 을 이야기 해볼까 합니다. ENUM 키워드에 대해서 MSDN 은 어떻게 설명을 하고 있을까요? enum 키워드를 사용하여 열거자 목록이라고 하는 명명된 상수 집합으로 구성된 독특한 형식인 열거형을 선언합니다. 모든 열거형에는 char 형식을 제외한 임의의 정수 계열 형식이 될 수 있는 내부 형식이 있습니다. 열거형 요소의 기본적인 내부 형식은 int입니다. 기본적으로 첫 번째 열거자 값은 0이며 그 이후의 열거자 값은 순서대로 1씩 증가됩니다. 협업에서 개발을 하시면서 ENUM 키워드를 많이 사용하고 애용할거라 생각이 듭니다. 이 부분에 대해 잘 알지 못하시는 분들을 위해서 아래의 사이트에서 지식을 얻으시기 바랍니다. http://imadonis.springnote.com/..
Generic Array 을 유용하게 사용해 보자 일반적인 .NET FRAMEWORK 2.0 는 배열에 대해 약간의 GENERIC 함수들을 제공해 줍니다. 그러나 이 함수 이외에 코드에서 배열의 요소들을 합치거나 제거하는 기술을 구현할 때가 종종 있죠. 따라서 이러한 기술을 구현하기 위해서 우선적으로 GENERIC 클래스에 대한 기본지식을 가지고 있어야 합니다. 즉 Lists, Arrays 이외 말이죠. 이러한 Array 객체들은 다소의 유용한 GENERIC 함수들을 아래와 같이 포함하고 있습니다. ConvertAll Exists Find Resize TrueForAll 하지만 이러한 함수들은 때때로 작업을 하는데 전부 만족스럽지 않아서, 약간의 확장을 하여 사용합니다. Append 제네릭 함수는 Array 제네릭의 Resize 메소드를 이용하여 공간을..
LINQ 의 쿼리문법과 림다문법 비교문서 Filtering var col = from o in Orders where o.CustomerID == 84 select o; var col2 = Orders.Where(o => o.CustomerID == 84); Return Anonymous Type var col = from o in orders select new { OrderID = o.OrderID, Cost = o.Cost }; var col2 = orders.Select(o => new { OrderID = o.OrderID, Cost = o.Cost } ); Ordering var col = from o in orders orderby o.Cost ascending select o; var col2 = orders.OrderBy(o =..
성능 프로파일러를 사용하여 Generic(제네릭) 리스트와 ArrayList 비교 성능 프로파일러를 사용하여 제네릭 리스트와 ArrayList 비교 Bill Gibson, 프로그램 관리자 Microsoft Corporation 적용 대상 : Microsoft Visual Studio 2005 Team System 프로파일러를 사용하여, 제네릭 리스트 구현과 ArrayList 구현의 성능 검토 Visual Studio Team System 2005 에는 새롭고 강력한 성능 프로파일러 도구가 있습니다. 이 프로파일러에서는 샘플링 (정기적인 간격으로 프로그램 상태의 스냅샷을 생성)과 계측 (함수의 시작 포인트와 종료 포인트를 모두 파악하기 위해서 어셈블리에 코드 삽입) 이라는 두 가지 방법으로 데이터를 캡쳐 할 수 있습니다. 또, 이 프로파일러는 네이티브 및 매니지 실행가능 파일, DLL ..
Generic(제네릭) 할당값 정렬해서 출력하기 이번 내용은 Generic 의 정렬에 대해서 설명을 하고자 합니다. MSDN 에 기재된 제네릭을 한번 읽어보고 진행하죠. 제네릭은 2.0 버전의 C# 언어와 CLR(공용 언어 런타임)에 새로 도입된 기능입니다. 제네릭을 통해 .NET Framework에 형식 매개 변수라는 개념이 처음 소개되었습니다. 형식 매개 변수를 사용하면 클라이언트 코드에서 클래스나 메서드를 선언하고 인스턴스화할 때까지 하나 이상의 형식 지정을 연기하는 클래스와 메서드를 디자인할 수 있습니다. 예를 들어, 다음과 같이 제네릭 형식 매개 변수 T를 사용하면 런타임 캐스트나 boxing 작업에 따른 비용이나 위험을 초래하지 않은 채 다른 클라이언트 코드에서 사용 가능한 단일 클래스를 작성할 수 있습니다. - msdn 발췌 제네릭의 정렬..
List Generic (제네릭) 을 이용한 간단한 예제 - 2 2번째 간단한 예제 나갑니다. 아래의 예제는 "List 제네릭을 이용한 간단한 예제 - 1" 강좌에서 언급한 소스 내용이니 여기서 간단히 넘어가겠습니다. static void Main(string[] args) { List pList = new List(); pList.Add(new Person(1, "John", "", "Shields", 29, 'M')); pList.Add(new Person(2, "Mary", "Matthew", "Jacobs", 35, 'F')); pList.Add(new Person(3, "Amber", "Carl", "Agar", 25, 'M')); pList.Add(new Person(4, "Kathy", "", "Berry", 21, 'F')); pList.Add(new ..