본문 바로가기
728x90
반응형

C# 공부25

reflection Study about reflection and attributes reflection 프로그램 실행 중 객체의 형식 이름, 프로퍼티 목록, 메소드 목록, 필드, 이벤트 목록 등 객체의 형식 정보를 들여다 볼 수 있는 기능 형식의 이름만 알고있으면 동적으로 인스턴스를 만들고 인스턴스의 메소드 호출 가능 새로운 데이터 형식을 동적으로 만들수있다. 모든 데이터 형식이 물려받은 Object 형식의 메소드를 알자 리플렉션을 이용해서 객체 생성하고 이용 코드 안에서 runtime에 특정 형식의 인스턴스를 만들면 프로그램이 동적으로 동작하게 구성할 수 있다. 형식 내보내기 프로그램 실행중 새 형식을 만들어 CLR의 메모리에 "내보내는" 기능 namespace EmitTest { public class MainAPP.. 2021. 8. 26.
LINQ Study about LINQ LINQ의 기본 from : 어떤 데이터 집합에서 찾을 것인가? where : 어떤 값의 데이터를 찾을 것인가? select : 어떤 항목을 추출할 것인가? group by로 데이터 분류 static void Main(string[] args) { class Profile { public string Name { get; set; } public int Height { get; set; } } static void Main(string[] args) { Profile[] arrProfile = { new Profile(){Name = "Hugh", Height = 171}, new Profile(){Name = "John", Height = 182}, new Profile(.. 2021. 8. 26.
lambda Study about lambda 람다식 사용 예제 delegate int Calculate(int a, int b); static void Main(string[] args) { Calculate calc = (int a, int b) => a + b; Console.WirteLit($"{3} + {4} : {calc(3,4)}"); } anonymous function 만들기 위해 사용 무명함수는 람다식으로 만든 익명 메소드 매개_변수_목록 => 식 => : 입력 연산자 식형식 문형식 람다식 delegate void DoSomething(); static void Main() { DoSomething DoIt = () => { Console.WriteLine("what"); Console.WriteL.. 2021. 8. 26.
dynamic Study about dynamic 컴파일러가 dynamic 키워드를 만나면 형식 검사를 실행때로 미룸 class Duck { public void Walk() { Console.WriteLine(this.GetType() + "Walk"); } public void Swim() { Console.WriteLine(this.GetType() + "Swim"); } public void Quack() { Console.WriteLine(this.GetType() + "Quack"); } } class Mallard : Duck {} class Robot { public void Walk() { Console.WriteLine("Robot.Walk"); } public void Swim() { Console.. 2021. 8. 26.
property Study about property 은닉성과 편의성을 모두 잡는 방법 Get/Set 접근자, value 사용 class MyClass { private int myField; public int MyField { get { return myField; } set { myField = value; } } } 읽기전용 프로퍼티는 Get 접근자만 구현하기! 자동 구현 프로프티 public class NameCard { private string name; private string phoneNumber; /* public string Name { get { return name; } set { name = value; } } */ public string Name { get; set; } public str.. 2021. 8. 25.
generic Study about generic 특수한 개념으로부터 공통된 개념을 찾아 묶는 것 일반화(generic)의 대상은 데이터 형식이다. 내부 논리는 같은데 데이터 형식 때문에 오버로딩을 해야할 경우 오버로딩 없이 모든 형식을 지원하는 프로그램 패러다임을 만들때 유용 Generic method void CopyArray (T[] source, T[] target) { for(int i = 0; i 2021. 8. 25.
728x90
반응형