daily pastebin goal
22%
SHARE
TWEET

Untitled

a guest Oct 12th, 2018 65 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [소개]
  2. C/C++을 참조한 언어, 닷넷 전용언어
  3. 약간 모든 언어의 짬뽕이라는 소리를 듣기도 한다.
  4.  
  5. [특징]
  6. 가비지 컬렉션 기능이 있다.
  7. 다중상속을 지원하지 않는다.
  8. 클래스간의 프렌드 지정을 할 수 없다.
  9. 디폴트 인수를 지원하지 않는다.
  10. 자료형에 대해 엄격하다.
  11. 자바에 JVM이 있다면 C#은 CLR(Common Language Runtime)에서 돌아간다.
  12. CLR이 중간 언어(MS IL)를 기계어로 번역해준다.
  13.  
  14. 오버라이딩 시 virtual 키워드를 붙여야한다.
  15.  
  16. 1. 프로퍼티(Property) = 속성
  17. 프로퍼티는 Get,Set을 손쉽게 만들 수 있는 방법(변수)이다. 함수 선언방식에서 ()만 빼면 프로퍼티 변수의 선언이다.
  18. 선언 부에 get {return ~; } set {~= value; } 이런식으로 선언한다.
  19. 자동 선언을 이용하려면 set; get; 이렇게 쓰면 됨.
  20.  
  21. 사용할때는
  22. 인스턴스.프로퍼티 명; //Get을 실행
  23. 인스턴스.프로퍼티 명 = 값; //Set을 실행
  24.  
  25. 객체 생성시에 손쉽게 프로퍼티 변수를 초기화 할 수 있으며 변수처럼 사용할 수 있다.
  26. (변수처럼 사용하는게 곧 Get을 호출하는것과 같으므로)
  27.  
  28. 2. 델리게이트(Deligate)
  29. 메서드를 변수로서 사용하기 위한 개념. (=함수 포인터) 메서드를 가리킬 수 있는 타입이다.
  30.  
  31. delegate로 선언한 타입이 메서드를 가리키기 때문에
  32. 그 메서드를 직접 호출하는 것 대신에 delegate로 그 메서드를 호출할 수 있다.
  33. delegate가 어떤 메서드를 가리키기 때문에 그 메서드와 동일한 매개변수와 리턴타입으로 선언해야한다.
  34.  
  35. delegate void Type1(void);  // void func1(void)
  36. delegate int Type2(int,int); // int func2(int, int)
  37. delegate string Type3(double); // string func3(double)
  38. delegate float Type4(int); // float func4(int)
  39.  
  40. Type1 F1Delegate;
  41. F1Delegate = new Type1(func1);
  42. Type2 F2Delegate;
  43. F2Delegate = new Type2(func2);
  44. Type3 F3Delegate = func3; // C# 2.0부터 사용가능
  45. * 타입명에 관례적으로 접미사 Delegate를 붙임. 안 붙여도 상관없으나 다 이유가 있다.
  46.  
  47. '콜백(CallBack)메서드'에서 활용 시 유용.
  48.  
  49. Delegate 체인
  50. delegate 인스턴스는 하나의 메서드만 가리키고 있었는데 여러개를 가리키는 것도 가능하다.
  51.  
  52. 특이하게 += 연산자를 이용해 delegate 인스턴스를 추가한다.
  53. 마찬가지로 -= 연산자를 이용해 인스턴스를 삭제할 수있다.
  54.  
  55. 3. 람다(Lamda)
  56. 무명 메소드, 무명 델리게이터를 단순한 계산식으로 표현한 것,
  57. [구현]
  58. (매개변수_목록)  =>  식
  59.  
  60. MyDelegate A;
  61. A = delegate(int a, int b) { return a+b; }; //이런 식을
  62. A = (int a, int b) => a+b; //로 표현 A = (a,b) => a+b; 이렇게도 가능
  63.  
  64. () => Write("No");
  65.  
  66. ex)
  67. delegate int Method(int a, int b);
  68.  
  69. static void Main(string[] args)
  70. {
  71.       Method Add= (a, b) => a+b;
  72.       Console.WriteLine(Add(3, 4));
  73.  
  74.       Method Minus = (a, b) =>
  75.       {
  76.            Console.WriteLine("{0} - {1} 의 결과는?", a, b);
  77.            return a - b;
  78.       };
  79.       Console.WriteLine(Minus(5, 3));
  80. }
  81.  
  82.  
  83. 4. 리플렉션(Reflection)
  84. 리플렉션 객체는 런타임에 형식정보를 얻는데에 이용됩니다.
  85. 이 기능을 사용하여 실핼 중에 객체의 형식 이름, 포로퍼티, 메소드, 필드, 이벤트 목록을 모두 볼수 있고,
  86. 해당 메소드를 호출하거나 필드, 프로퍼티에 접근하는 것도 가능합니다.
  87. 프로그램의 metadata에 접근할 수 있도록 해주는 이 클래스는 System.Refelection namespace에 정의되어 있습니다.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top