c#(12)
-
디자인 패턴 - 싱글톤 (Singleton)
Singleton 애플리케이션을 실행한 후 인스턴스를 하나만 생성하여 어디서든 그 인스턴스에 접근할 수 있도록 하는 디자인 패턴 일반적인 싱글톤 패턴의 클래스는 다음 3가지의 요소를 가집니다 private 생성자 private static 인스턴스 객체 public static 객체 반환 함수 public class Singleton { private Singleton() { } private static Singleton _instance; public static Singleton Instance { get { if (_instance == null) { _instance = new Singleton(); } return _instance; } } }하지만 이럴경우 Single thread 환경에서는..
2021.04.01 -
C# 람다 식 Lambda
람다 시은 무명 메서드를 표현하는데 사용되며, => 연산자 오른쪽에 본문을 표시하여 간단히 표현할 수 있다. 람다 식을 이용하면 delegate와 무명 메서드도 간략히 표현할 수 있다. 식 람다 delegate int calculate(int a, int b); calculate cal = (a, b) => a + b; Console.WriteLine(cal(10, 20)); 먼저 delegate를 통해 대리자를 선언 한 뒤, 람다식을 참조시킨다. 람다식으로 구현된 무명 메서드는 일반 메서드처럼 매개변수를 넘겨 대리자를 호출한다. 문 람다 delegate int calculate(int a, int b); calculate cal2 = (a, b) => { int sum = a + b; Console.W..
2021.01.27 -
C# Generic
Generic c#에서는 Generic이라는 타입을 사용할 수 있는데, Generic 타입은 int/double과 같은 데이터 타입을 정하지 않고 타입 자체를 파라미터로 받아들이도록 정의할 수 있다. 또한 변수 뿐만아니라 메서드, 클래스, 인터페이스 등에서도 사용할 수 있다. class GenericStack { T[] _objlist; int position = 0; public GenericStack(int size) { _objlist = new T[size]; } public void Push(T newvalue) { _objlist[position++] = newvalue; } public T Pop() { return _objlist[position--]; } } 해당 클래스는 stack 자료..
2021.01.27 -
C# 추상클래스와 인터페이스
추상 클래스 추상 클래스는 미완성된 클래스를 말하며, 추상 메서드나 추상 프로퍼티를 포함한다. 이 클래스 내에는 직접적인 구현을 하지 않으며, 오직 자식 클래스에서 상속을 통해서만 구현한다. public abstract class abstractclass { public string name; public int id { get; set; } public abstract void show(); // 추상 메서드 } public class normalclass : abstractclass { public override void show() { Console.WriteLine("."); } } abstractclass 에서는 추상클래스 이므로 메서드를 구현하지 못하고, 상속받은 자식 클래스에서 구현한다. ..
2021.01.26 -
C# Delegate
Delegate란 대리자란 뜻으로 메서드를 참조하는 변수이다. 이러한 Delegate는 메서드를 대신 호출하여 실행시킬 수 있고 여러 메서드를 참조할수도 있다. 일반적인 Delegate //////////////////////////////////////////////////////// Alert Class class Class1 { public delegate void Alert(string text); public void notice(string text) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("notice : " + text); } public void error(string text) { Console.Foregr..
2021.01.25 -
c# property
property는 클래스 내의 멤버 변수를 정보 은닉할때 사용된다. getter, setter를 통해 해당 변수를 읽고 쓸수 있으며 읽기 전용과 쓰기 전용으로도 만들 수 있다. C# 기본형 프로퍼티 class Class1 { private int c1; public int C1 { get { return C1; } set { C1 = value; } } } 이와 같이 c1에 직접 접근하지 않고 get set을 이용하여 접근하는 방식이다. 하지만 이러한 변수를 많이 만들게 되면 코드도 길어지고 보기 불편하기 때문에 C# 3.0 버전부터는 자동 구현 프로퍼티 기능을 제공한다. C# 자동 구현 프로퍼티 class Class1 { public int c1 { get; set; } } 이와 같이 뒤에 get se..
2021.01.12