본문 바로가기

프로그래밍/C#.net30

[C# Basic강좌] 제5장 클래스 2009. 8. 29.
[C# Basic강좌] 제4장 메소드 2009. 8. 29.
[C# Basic강좌] 제3장 연산자, 흐름제어 2009. 8. 27.
[C# Basic강좌] 제2장 변수와 자료형 2009. 8. 27.
[C# Basic강좌] 제1장 C#의 배경 2009. 8. 26.
ref 와 out 함수를 호출하는 방법에는 크게 Call by Value 와 Call by Reference 가 있는건 알고 있을테고, C에서는 포인터를 통해 Call by Reference를 하지만 c#에서는 포인터를 사용하지 않고, 크게 두가지가 있다. ref 와 out 둘다 주소값을 보내는 것이지만, ref 는 매개변수로 사용전에 초기화 되어야만 하고, out 은 초기화 되지 않아도 된다.(함수안에서 초기화) 그러므로 out는 함수안에서 어떤 값을 얻어올때 주로 사용한다. ref => call by Refecnce out => call by Result 2009. 8. 24.
[effective C#]ITEM#26 IComparable 과 IComparer를 이용하여 순차관계를 구현하라. IComparable - 객체간의 기본적은 순차관계를 정의할 목적으로 사용된다. - CompareTo()라는 하나의 메서드만을 정의하고 있다. - CompareTo()메서드를 overload해서, 성능의 문제를 개선할 수 있다. - CompareTo()와 일관성을 유지하기 위해서 비교연산자도 동시에 overload하는 것이 좋다. IComparer - 관계연산(,=)의 의미를 별도로 정의 - 기존의 관계연산이 타입별로 다른 의미를 가질 수 이도록 한다. - interface구현에 따를 런타임시 수행성능의 비효율성을 극복하기 위해서 사용 [출처] ■ITEM#26 IComparable 과 IComparer를 이용하여 순차관계를 구현하라.|작성자 롱박 2009. 8. 24.
[effective C#]ITEM25# serializable 타입이 더 좋다. ITEM25# serializable 타입이 더 좋다. 우리가 만드는 타입 중에 UI전용컨트롤,윈도우 혹은 폼을 가지는 타입을 제외한 모든 타입은 반드시 serialzation기능을 제공해야 한다. [Serializable] public class MyType { private string _label; private int _value; } MyType의 멤버인 string,int 타입은 기본적으로 serialization을 지원하는 타입이기 때문에 Serialization attribute를 추가하는 것만으로 MyType은 serialzation이 가능한 타입이 된다. -닷넷 Serialization은 객체 내의 모든 멤버변수를 출력 스트립으로 내보낼 수 있다. -닷넷 프레임워크는 Serializat.. 2009. 8. 24.
[effective C#] item #14: 연쇄적인 생성자를 호출하라. ITEM #14: 연쇄적인 생성자 호출을 이용하라. 어떤 클래스에서 다수의 생성자 내에서 중복적으로 수행되고 있는 코드가 있으면,중복코드들을 새로운 생성자로 분리시켜 호출하는 방식으로 초기화를 수행하도록 하자. C#에서 대부분의 클래스들은 하나 이상의 생성자를 가지고 있고,이 생성자들의 역할이 객체의 멤버들을 초기화하는 것이기 때문에 생성자의 연쇄 호출방식을 이용하여 객체 멤버들을 초기화하는 것은 매우 자연스럽다. 인스턴스 과정에서 내부적으로 수행되는 순서 1. static 변수를 0으로 설정한다. 2. static 변수에 대해 선언시 초기화 루틴을 수행한다. 3. 기반 클래스의 static 생성자를 수행한다. 4. static 생성자를 호출한다. 5. 인스턴스 변수를 0으로 설정한다. 6. 인스턴스 변.. 2009. 8. 24.