목록언어/C# (6)
개발하는 리프터 꽃게맨입니다.
스스로 공부한 내용을 정리없이 구어적으로 풀어쓴 포스팅입니다.오로지 제가 볼 기준으로 정리한 글이기에참고하는 것을 추천하지 않습니다. [객체 지향이란?]객체란 속성과 기능을 가진 구체적은 인스턴스를 말합니다.속성과 기능을 C#코드로 표현할 수 있을까요?속성은 데이터로, 기능은 메소드로 표현하면 됩니다. 객체지향 프로그래밍에서 가장 중요한 역할을 하는 것은 클래스입니다.클래스는 객체를 만들기 위한 청사진인데, 객체를 만들기 위해서 어떤 속성과 기능을 가져야하는지명시된 설게도라고 생각할 수 있습니다. 클래스는 객체가 가지게 될 속성과 기능을 정의하지만 실체를 가지지 않습니다.이런 클래스로 만든 객체가 실체를 가지고 독립적인 메모리 공간을 차지합니다. 모든 클래스는 복합 데이터 형식입니다.복합 데이터 형..
C#에서 call by refence로 매개변수를 날려주는 방법은 2가지 입니다. ref 키워드와 out 키워드를 사용하는 것이죠. 이 2개의 키워드는 90% 동일한 기능을 수행합니다. 그런데 out은 보통 한 개 이상의 매개변수를 출력받고 싶은 경우에사용하는 키워드입니다. 그리고 out 키워드를 이용해서 넘긴 매개변수는 반드시 함수 내부에서 쓰기 동작이 발생해야 합니다.쓰기 동작이 발생하지 않으면 컴파일 오류가 발생합니다. ref 를 이용해서 out의 기능을 구현할 수는 있지만,out을 사용하는 것이 더욱 가독성이 좋습니다. call by reference 를 할 경우 가급적이면 ref을 사용하고다수의 리턴 값을 저장하고 싶은 경우에는 out 키워드를 사용하도록 합시다.
switch문은 특정 정수형 변수에 대해서분기 처리를 하여 코드의 흐름을 제어하는 문법입니다. C++에서는 switch 문에서 사용할 수 있는 변수는 '정수'로 제한되었습니다.(int, char 등.. 만 사용할 수 있고 float, const char* 등.. 은 사용할 수 없죠) 그러나 C#에서는 다양한 조건식이 허용되는 모습을 보입니다. 이런 식으로 문자열로 분기 처리를 할 수도 있고가장 신기했던 것은 Type 에 대한 분기 처리를 수행할 수 있다는 것이었습니다. 정말 신기합니다! [케이스 가드]switch문의 case 절의 패턴을 더 구체적으로 만들어주는 추가적인 조건 검사라고 할 수 있습니다.case 절 뒤에 when 절을 붙여 사용합니다.when 절은 if 문처럼 true/false 로..
저는 몇 년간 C와 C++ 만 다뤄왔고,C# 을 공부하면서 생소한 연산자를 몇개 보았습니다. 그것에 대해서 정리하는 포스팅을 작성하겠습니다. [문자열 결합 연산자] C# 에서는 문자열을 + 연산자를 통해서결합할 수 있습니다. [Null 조건부 연산자]이 연산자는 C# 6.0에서 도입됐습니다?. 연산자가 하는 일은 객체의 멤버에 접근하기 전에 해당 객체가 null 인지 검사하여 그 결과가 참이면 그 결과로 null을 반환하고, 그렇지 않은 경우에는 뒤에 지정된 멤버를 반환합니다. Player 객체의 _name에 ?. null 조건부 연산자를 이용하여 접근하고 있습니다.player1의 경우에는 _name 이 null 이었기 때문에 player1?._name 은 null 은 반환한것이고player2의 경우..
[데이터 형식] C#은 다양한 종류의 데이터 형식을 제공하고,수와 텍스트, 이미지, 소리를 다룰 수 있는 데이터 형식도 제공합니다. 하지만 이번에 다룰 것은 모든 데이터 형식의 근간을 이루는'기본 데이터 형식', '상수', '열거형' 입니다. [변수]변수를 코드에서 보자면 값을 대입시켜 변화시킬 수 있는 요소이지만, 메모리 쪽에서 보면 '데이터를 담는 일정 크기의 공간'이라는 의미를 갖기도 합니다.그러므로 우리가 C# 코드를 작성하면서 변수를 만들 때는 그 이면에 있는 메모리 세계도 함께 생각해야 합니다. 우리가 변수를 하나 선업하며, 이것은 컴파일러에게 "이 변수에 빌요한 메모리 공간을 예약해줘."라고 알립니다.가장 먼저 데이터 형식을 명시하고 그 다음에 변수 이름을 명시합니다.그리고 문장 종결을 표시..