전체 글

전체 글

    [C#] 예외 처리

    [C#] 예외 처리

    0. 개요 using System; public static class FileManager { public static int CopyFile(string srcFileName, string dstFileName) { // ... return 100; } } class Program { static void Main() { FileManager.CopyFile("C:\\a.txt", "D:\\b.txt"); } } 위와 같이 파일 이름을 인자로 받아 앞의 인자의 내용을 뒤의 인자로 복사하는 코드가 있다고 해보자. 복사를 하면 복사한 양을 리턴해주게끔까지 해놓았다. 그런데 이러한 코드가 항상 성공한다는 보장이 없다. 사용자가 이름을 실수할 수도 있고, 접근 권한이 없을 수도 있는 등 실패할 가능성도 있다..

    [C#] 람다 표현식 (Lambda Expression)

    [C#] 람다 표현식 (Lambda Expression)

    1. 핵심 정리 using System; class Program { public static void foo(Func f) { int s = f(1, 2); Console.WriteLine(s); } static void Main(string[] args) { foo( ? ); } } Main에서 foo함수의 인자로 메소드를 받는데 메소드의 이름이 아닌 구현부를 넣을 수 있다. 이름을 제외한 인자~구현부까지 넣으면 되는데 형태는 아래와 같다. using System; class Program { public static void foo(Func f) { int s = f(1, 2); Console.WriteLine(s); } static void Main(string[] args) { foo(Add);..

    [C#] Action, Func

    [C#] Action, Func

    1. Action using System; class Program { public static void Foo1(int arg1) { } public static void Foo2(int arg1, int arg2) { } static void Main() { ? f1 = Foo1; ? f2 = Foo2; } } Main에서 Foo1, Foo2 메소드의 정보를 담고 싶다. 그렇다면 앞선 내용대로 delegate를 사용하면 된다. using System; delegate void Foo1(int arg1); delegate void Foo2(int arg1, int arg2); class Program { public static void Foo1(int arg1) { } public static voi..

    [C#] event

    [C#] event

    1. 개요 using System; delegate void HANDLER(); class Button { public HANDLER handler = null; public void press() { handler(); } } class Program { static void Main() { Button btn = new Button(); btn.press(); } public static void F1() { Console.WriteLine("F1"); } public static void F2() { Console.WriteLine("F2"); } } 위와 같은 코드가 있다고 생각을 해보자. Button클래스는 실제 GUI에서 사용할 버튼이라고 생각하고 Main에서 Button객체를 만들고 pres..

    [C#] Delegate Chain

    [C#] Delegate Chain

    1. Delegate Combine using System; class Test { public static int Method1() { Console.WriteLine("Method1"); return 1; } public static int Method2() { Console.WriteLine("Method2"); return 2; } public static int Method3() { Console.WriteLine("Method3"); return 3; } public static int Method4() { Console.WriteLine("Method4"); return 4; } } delegate int FUNC(); class Program { public static void Main(..

    [C#] Delegate Example

    [C#] Delegate Example

    1. 예제 using System; class Program { public static void Swap(ref int a, ref int b) { int temp = a; a = b; b = temp; } public static void Sort(int[] arr) { int sz = arr.GetLength(0); for(int i = 0; i arr[j]) Swap(ref arr[i], ref arr[j]); } } } static void Main() { int[] x = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}; Sort(x); foreach(int n in x) ..