비주얼 스튜디오 2017 커뮤니티 버전 (개인 사용시 무료) 다운
델리게이트(deligate)
[필요성]
단축키 a를 누르면 장풍 마법이 나가도록 하고 싶다고 하자.
a를 누르면 장풍마법 메소드를 불러오면 된다.
그런데 사용자가 a를 누르면 지진 마법이 나오도록 바꾸고 싶어한다.
그러면 a를 누르면 지진 마법 메소드가 나오도록 연결해야한다.
a를 누르면 나와야하는 마법들을 일일이 지정하지 않고 변수처럼 그 때 그 때(사용자가 단축키 변경을 누를 때마다) 다르게 실행하게 할 수는 없을까.
C#에서 델리게이트가 그 역할을 한다.
바로 함수자체를 변수화 시키는 것이다.
[사용 방법]
델리게이트형 자료 mydel를 생성한다. 이때 결정되는 리턴 자료형과 메소드 인수가 향후에 사용될 함수들과 일치해야한다.
이렇게 생성한 mydel은 클래스처럼 사용된다. 즉 mydel이라는 클래스의 객체를 생성하고 거기에 원하는 함수를 대입하는 방식으로 사용한다는 말이다.
[예제
// 1. move below code to class level. becouse it needs to be glrobal variable
delegate $void$ $mydel$($string a$) ;
// 2. move below code to method level.
$mydel$ $clone$= $sayString$;
$clone$("하이");
/* it is old grammar but still working.
$mydel$ clone2= new $mydel$(someotherMethodName);
clone2("두이");
*/
스레드란?
제어문(삼항연산자)
[필요성]
한줄로 yes or no만 판단하여 값을 리턴할 수 있다는 점에서 가독성과 효율성이 좋다.
하지만 좀 귀찮아도 if문으로 표현가능하니까. 초반에는 외울필요 없다.
[사용 방법]
(조건) ? 참일시리턴할것 : 거짓일시리턴할것;
[예제]
string mytext = "헤이";
string myanswer = (string.IsNullOrEmpty(mytext)) ? "응 비었어" : "뭔가 있어";
Console.WriteLine(myanswer );
매개변수 params 사용법
[강좌] 예제로 배우는 c# 프로그래밍
무료로 강좌를 연재하는 고수분의 웹 페이지입니다. 체계적인 교육은 아니지만 하나씩 따라하다보면 개념을 이해 할 수 있고 어려운 개념에 대해서 설명이 잘 되어있는 곳입니다.