본문 바로가기

분류 전체보기

(279)
c#강좌 람다식 람다식은 Lambda Expression 이라고 한다. 함수를 간결한 방법으로 묘사하기 위해 람다 계산법을 고안해 냈다. 람다 계산법은 함수의 정의와 변수 그리고 함수의 적용으로 이루어져 있다. 람다식을 만드는 방법은 다음과 같다. 매개변수목록 => 식 메소드는 입력과 출력을 가지고 있고, 람다식도 마찬가지다 => 연산자를 사용하고, 이 연산자는 입력 연산자이다. 이 연산자가 하는 역할은 매개변수를 전달하나느 역할이다. 람다식에서 =>를 중심으로 왼쪽은 매개변수, 오른쪽은 식이 위치한다. delegate int Calculate(int a, int b); static void Main( string[] args) { calculate calc = (int a, int b ) => a +b; } 단순히 i..
c# 강좌 델리게이트 C#에서 델리게이트는 콜백함수를 구한하기 위해 사용된다. 한정자 delegate 반환형식 델리게이트명( 매개변수); 로 사용된다. ex) delegate int myDelegate(int a, int b); 델리게이트를 이용해서 콜백을 구현하는 과정을 요약해보면 다음과 같다. 1. 델리게이트 선언 2. 델리게이트의 인스턴스를 생성, 인스턴스를 생성할 때는 델리게이트가 참조할 메소드를 매개변수로 넘김 3. 델리게이트 호출 사용자가 원할때 알려주는 객체 = 이벤트! 이벤트는 델리게이트를 event 한정자로 수식해서 만든다. 선언하고 사용하는 절차는 다음과 같다. 1. 델리게이트를 선언, 이 델리게이트는 클래스 안 밖 상관 없이 선언해도 됨. 2. 클래스 내에 선언한 델리게이트의 인스턴스를 event 한정자로..
C# 강좌 프로퍼티. class MyClass { private int myField; public int GetmyField(){ return myField;} public void SetmyField(int newValue){ myField = newValue;}; } MyClass obj = new MyClass(); obj.SetMyField(3); Console.WriteLine(obj.GetMyField()); 이것은 정석이긴 하지만 C#에는 우아한 장치가 있음. 따라서 이런 방법은 지양해야함 Class 클래스이름 { 데이터형식 필드이름; 접근한정자 데이터형식 프로퍼티이름 { get { return 필드이름; } set { 필드이름 = value; } } } get 접근자를 필드로부터 값을 읽어오고 set은 필드에..
C# 강좌 추상클래스 추상클래스는 인터페이스와 달리 구현을 가질 수 있다. 하지만 클래스와는 달리 인스턴스를 가질수 없다. 추상클래스는 한마디로 구현을 가지되 인스턴스는 만들지 못함. abstract class 클래스이름 { } ex) abstract class AbstractBase { public abstract vboid someMethod(); } class Derived : AbstractBase() { //Something } 추상클래스와 추상 메소드는 다른 프로그래머가 파생클래스를 만들어야 하며 모든 추상 메소드를 구현해야 한다는 사실을 잊어 버릴때 컴파일러가 상기시켜줄 것이다. 이때문에 추상 클래스를 사용한다.
c# 강좌 업캐스팅과 다운캐스팅 업캐스팅: 자식 클래스의 객체를 부모클래스의 객체로 만드는것을 말한다. ex) class SportsCar : Car 라고 클래스가 있으면, Car a = new Car(); SportsCar b = (SportsCar)a; // 명시적 변환 SportsCar c = a; // 묵시적 변환 자식클래스는 부모클래스의 멤버를 내부적으로 모두 가지고 있기 때문에 자식클래스의 일부분을 이용해 부모클래스를 만드는 것이 가능하다. 업캐스팅의 장점은 사용자는 내부를 몰라도 된다는 것. 인터페이스만 있다면 어떠한 작업이라도 전부 할 수 있다. 이러한 장점은 우리가 직접 만들어서 작업하기 보다는 내부적으로 이루어지는 경우가 많다. 추상클래스, 인터페이스, 은폐화, 오버라이딩 등 과 관련이 있다. 다운캐스팅: 부모클래스의..
c# 강좌 인터페이스 인터페이스는 객체 지향 프로그래밍을 한층 더 강력하게 만들어주는 요소이다. 객체지향의 고수는 인터페이스를 잘 사용할 수 있어야 한다 라고 합니다. 인터페이스는 자신으로부터 파생될 클래스가 반드시 메소드를 사용하도록 강제한다. 예시를 봅시다. ClimateMonitor란 클래스를 만들고 사용자로부터 온도를 반복적으로 입력받아 기록하는 클래스로 만들자! 로그를 저장하는 방식 등은 ClimateMonirot 클래스를 사용하는 다른 프록르래머들이 입맛에 따라 결정할 수 있어야 한다고 해보자 Climate클래스는 Logger를 이용해서 사용자로부터 입력받은 온도를 기록한다. logger가 어떻게 이 메시지를 기록하는지 ClimateMonitor()생성ㅈ에 매개변수로 입력된 객체에 달려 있다. namespace I..
c# 강좌 is as 연산자 형식 변환. 형식변환에는 두가진 버전이 있다. 업캐스팅과 다운캐스팅이다. 업캐스팅은 자식클래스의 객체가 부모클래스의 형태로 변환되는 것을 말하며, 다운캐스팅은 부모 클래스의 자식클래스의 형태로 변환되는것을 말한다. 형식변환 예시 Dog dog1 = new Dog(); Mammal mammal = dog1(); // 업캐스팅, 자식클래스가 부모클래스의 형태로 변환됨. mammal.Nurse(); Dog dog2 = (Dog)mammal; // 다운캐스팅, 부모클래스가 자식클래스의 형태로 변환됨. 연산자 : 설명 is : 객체가 해당 형식에 해당하는지를 검사하여 그 결과를 bool값으로 반환함 as : 형식 변환 연산자와 같은 역활을 합니다. 다만 형변환 연산자가 변환에 실패하는 경우 예외를 던지는 반면에 as연산자는 ..
c# 공부 시작 공부 시작