728x90
반응형

Enum 에 선언된 내용으로 string 을 변환 하고 싶을 때 아래와 같이 합니다.

 

EnumType testEnumType = (EnumType)Enum.Parse(typeof(EnumType), "변경할string", true)

 

예)

public enum EnumTestType

{

   A,

   B
}

 

EnumTestType testEnumType = (EnumTestType)Enum.Parse(typeof(EnumTestType), "A", true)

728x90
반응형
728x90
반응형

코딩수준에서 지켜야할 기준이 있다면 이를 지키고 있는지 확인할수 있게 한다.

 

string test = "jun";

Contract.Requires<ArgumentNullException>(test == "kang", "★ 에러가 발생되었습니다. ★");

 

위처럼 하게되면 사전조건 에러가 발생된다.

 

 

728x90
반응형
728x90
반응형

// 비교연산자중 대소문자를 무시하는 연산자를 선택하고
var comparer = StringComparer.OrdinalIgnoreCase;

 

// Dictionary 선언시에 연산자를 넣어주면 끝.

Dictionary<String, int> dict = new Dictionary<String, int>(comparer);
dict["TEST"] = 10; //대문자로 넣었지만
int testint = dict["test"];// 소문자로 찾을수 있다 결과는 10

728x90
반응형
728x90
반응형

1. 일단 CLR 가비지 컬랙터가 언제 동작할지 예측이 불가능하다.

2. 중요한 자원을 소멸자에서 해제하도룩 두면 얼마가지 않아 자원이 부족해지는 형상을 겪게된다.

3. 명시적으로 소멸자가 구현되어있으면 가비지 컬렉터가 object 로 부터 상속받은 Finalize() 메소드를 클래스의 족보를

타고 올라가며 호출하기 떄문에 응용프로그램의 성능저하만을 가져올 확룰이 높다

4. 카비지 컬렉터가 우리보다 훨씬 더 똑똑하게 객체의 소멸을 처리 할수 있다.

728x90
반응형
728x90
반응형

파생 클래스 버전의 메소드를 new 한정자로 수식함으로써 파생 클래스에서 구현된 버전만을 보여주는 것을 말한다.

 

class base

{

public void Method()

{

// AAA

}

}

 

class Derived : base

{

public new void Method()

{

// BBB
}

}

 

Dervied 에선 기존의 AAA 는 사라진다.

728x90
반응형
728x90
반응형

인터페이스와 클래스 사이의 개념으로 보면됩니다.

즉, 인터페이스와는 다르게 구현을 갖되 인스턴스는 만들지 못합니다.

 

추상메소드를 이용해 상속받는 클래스 들이 해당 메서드를 강제 하도록 할수 있습니다.

 

1. 먼저 추상 클래스를 정의합니다.

    PrintConsole 는 구현이 된 메서드이고 MandatoryMethod 는 상속받는 클래스에게 강제할수 있는 메서드 입니다.

 

         abstract class AbstractClass
        {
            public void PrintConsole()
            {
                Console.WriteLine("PrintConsole");
            }

            public abstract void MandatoryMethod();
        }


        public class SangSokClass : AbstractClass
        {
            public override void MandatoryMethod()
            {
                Console.WriteLine("MandatoryMethod");
            }
        }

 

2. 위 선언을 이용해 프로그램에서는 아래와 같이 사용합니다.

 

            SangSokClass sClass = new SangSokClass();
            sClass.PrintConsole();
            sClass.MandatoryMethod();

 

 

3. 프로퍼티 정의 또한 구현이 가능하여 Get, Set 에 코딩이 가능하고 ​abstract  를 이용하여 강제 할수도 있습니다.

728x90
반응형
728x90
반응형

왜 델리게이트를 사용하는가?

 -> 값이 아닌 코드 자체를 매개변수로 넘기고 싶을때..

     특정 델리게이트 메서드 형식을 정의해 놓고 거기에 맞게 내부 코딩은 맘대로 할수가 있습니다.

 

 

delegate int Compare(int a, int b);

를 정의하고

 

참조할 메서드

static int Compare1(int a, int b)

static int Compare2(int a, int b)

 

void Method(int iTest, Compare compare)

메서드의 인자로 처리하게 되면 Compare 에 참소메소드에 따라 결과가 달라지게 됩니다.

 

아래처럼 사용합니다.

Compare pare = new Compare(Compare1);

Method(1,pare);

 

pare = new Compare(Compare2);

Method(1,pare);

728x90
반응형

'C#' 카테고리의 다른 글

(.NET) 메소드 숨기기  (0) 2017.04.15
(.NET) 추상클래스 - abstract  (0) 2017.04.15
(.NET) 델리게이트 - delegate  (0) 2017.04.15
(.NET) 델리게이트 체인  (0) 2017.04.15
(.NET) Func Action  (0) 2017.04.15
(.NET) 더블 버퍼 줄이기  (0) 2017.04.15
728x90
반응형

+= 를 이용하여 델리게이트가 호출하는 참조 메서드를 추가 시켜줍니다.

즉 Detegate A 가 있다면 여기에

A += method1

A += method2

 

A 를 호출하면 method1과 method2 가 차례대로 호출됩니다.

 

 

TestDelegate delegate = (TestDelegate)Delegate.Combine( new TestDelegate (method1),

                                                                                      new TestDelegate (method2));

728x90
반응형

'C#' 카테고리의 다른 글

(.NET) 추상클래스 - abstract  (0) 2017.04.15
(.NET) 델리게이트 - delegate  (0) 2017.04.15
(.NET) 델리게이트 체인  (0) 2017.04.15
(.NET) Func Action  (0) 2017.04.15
(.NET) 더블 버퍼 줄이기  (0) 2017.04.15
(.NET) Obsolete  (0) 2017.04.15
728x90
반응형

Func 결과를 반환하는 메소드를 참조하기위해 사용

Action : 반환형식이 없는 메소드를 참조하기위해 사용

  

Func<int,int> func = (x) => x + 2;

 

int result = 0;

Action<int> action = (x) => result = x + 2;

728x90
반응형

'C#' 카테고리의 다른 글

(.NET) 델리게이트 - delegate  (0) 2017.04.15
(.NET) 델리게이트 체인  (0) 2017.04.15
(.NET) Func Action  (0) 2017.04.15
(.NET) 더블 버퍼 줄이기  (0) 2017.04.15
(.NET) Obsolete  (0) 2017.04.15
(.NET) APPCRASH 및 CLR20r3 에러  (0) 2017.04.15
728x90
반응형

아래처럼 시스템 진입부에 넣으면 깜빡임현상을 줄일수 있다.

 

            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.UserPaint, true);
            SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
728x90
반응형

'C#' 카테고리의 다른 글

(.NET) 델리게이트 체인  (0) 2017.04.15
(.NET) Func Action  (0) 2017.04.15
(.NET) 더블 버퍼 줄이기  (0) 2017.04.15
(.NET) Obsolete  (0) 2017.04.15
(.NET) APPCRASH 및 CLR20r3 에러  (0) 2017.04.15
(.NET) GetDateTimeFormats()  (0) 2017.04.15

+ Recent posts