본문 바로가기
728x90
반응형

C# 공부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.
class 02 Study about class 중첩 클래스 클래스 안에 선언되어 있는 클래스로 소속되어 있는 클래스의 멤버에 자유롭게 접근 가능하다. (private 멤버도 가능) 클래스 외부에 공개하고 싶지 않은 형식을 만들거나 현재 클래스의 일부처럼 표현 가능한 클래스를 만들고자 할때 사용한다. class OuterClass { private int OuterMember; class NestedClass // 중첩클래스 { public void DoSomething() { OuterClass outer = new OuterClass(); outer.OuterMember = 10; } } } 확장 메소드 기본 클래스의 기능을 확장하는 기법 // 선언 방법 neamespace MyExtension { public st.. 2021. 8. 22.
728x90
반응형