본문 바로가기
728x90
반응형

전체 글99

generic Study about generic 특수한 개념으로부터 공통된 개념을 찾아 묶는 것 일반화(generic)의 대상은 데이터 형식이다. 내부 논리는 같은데 데이터 형식 때문에 오버로딩을 해야할 경우 오버로딩 없이 모든 형식을 지원하는 프로그램 패러다임을 만들때 유용 Generic method void CopyArray (T[] source, T[] target) { for(int i = 0; i 2021. 8. 25.
exception Study about exception 자세한 내용은 C++ 카테고리 exception 참고 프로그래머가 생각하는 시나리오에서 벗어나는 사건 발생할 예외를 처리하지 않으면 CLR이 처리하여 에러를 알러준다. try~catch 와 finally try { // dbconn 은 데이터베이스 커넥션 dbconn.Open(); // ... // deconn.Close(); // 버그 일으킬 가능성 높음 } catch (DataToBase_Exception e) { //... } catch (Data_Exception e) { //... } finally { deconn.Close(); // 여기서 닫아주기 } 예외가 try 블록의 중요 코드 실행을 못하게 한다면 try블록의 끝에 데이터베이스의 커넥션을 닫는 코.. 2021. 8. 25.
interface Study about interface and abstract interface 클래스가 따라야하는 약속이다. 파생될 클래스가 어떤 메소드를 구현해야 할지 정의 interface ILogger { void WirteLog(string log); } class ConsoleLogger : ILogger { // 상속받은 클래스는 구현해야함 public void WriteLog(string message) { Console.WirteLine("{0} {1}", DateTime.Now.ToLocalTime(), message); } } public static void Main() { // 상속받은 클래스 인스턴스화 가능 ILogger logger = new ConsoleLogger(); logger.Writ.. 2021. 8. 25.
tuple Study about tuple Tuple 여러 필드를 담을 수 있는 구조체로 형식의 이름을 갖지 않고 임시적으로 사용할 복합 데이터 형식 선언에 적합하다 튜플은 명명되지 않은 선언 즉 필드 이름을 지정하지 않은 선언과 명명된 선언 다 가능 public static void Main() { var tuple = (123, 789); Console.WriteLine($"{tuple.Item1}, {tuple.Item2}"); var tuple2 = (Name: "Hugh", Age:23); Console.WriteLine($"{tuple2.Name},{tuple2.Age}"); } 컴파일러가 튜플의 모양을 보고 직접 형식을 결정하도록 var를 이용하여 선언한다. 튜플은 괄호 사이에 두 개 이상의 필드를 지.. 2021. 8. 22.
static Study about static static field and method static은 메소드나 필드가 클래스 자체에 속하도록 지정하는 한정자 인스턴스 소속 필드 vs 클래스 소속 필드 필드는 C++에선 멤버라고 생각 // 1번 class MyClass_Instance { public int a; } public static void Main() { MyClass mc = new MyClass(); mc.a = 1; } // 2번 class MyClass_class { public static int a; } public static void Main() { MyClass_class.a = 1; } 1번은 인스턴스 소속필드 2번은 클래스 소속 필드다. 2번의 경우 인스턴스를 만들지 않고 클래스의 이름.. 2021. 8. 22.
inheritance Study about inheritance inheritance & 'base' keyword 기반 클래스와 파생 클래스 사이에 형식 변환이 가능하다. is / as 키워드가 형 변환 연산자로 as는 참조형식에만 사용한다. 파생 클래스의 수명주기는 다음과 같다 class Base { protected int Age; // 1 public Base() { Console.WriteLine("Base()"); } // 4 ~Base() { Console.WriteLine("~Base()"); } public void BaseMethod() {} public Base(int age) { this.Age = age; } } class Derived : Base { // 2 public Derived() { Con.. 2021. 8. 22.
728x90
반응형