Search
Duplicate

Mac과 VS Code로 C#을 할 수 없을까? (feat. C# 찍먹)

간단소개
C 언어보다 C#이 낯선, 42 Seoul을 통해서 C#에 다가서는 사람들을 위한 글
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
C#
VScode
Scrap
태그
C#
VSCode
9 more properties

C#을 처음 시작하시는 분들을 위해

1. 42 Seoul에서 프로그래밍이 처음인, C 언어보다 C#이 낯선 저와 같은 사람들을 위한 글입니다.
2. 제목은 저렇게 썼지만, 간단하게 CC#의 차이점에 대해 다룰 예정입니다.
클러스터에서는 안 됩니다! (.NET 설치 시 관리자 권한 요구...)
3. Windows와 Visual Studio가 익숙하시다면 이 글로!

서두

Mac OS에서C#을 활용하는데 Visual StudioXamarin Studio가 정감이 가지 않아서,
‘Mac에서 VS Code로 C#을 쓰고 실행하고 싶은데 방법이 없을까?’ 하다가 찾게 됐습니다.

필수 조건

VS Code 2015 이상 버전(아마)

.Net? Xamarin? 그런 건 모르겠고, CLI 출력을 해보자!

1. command() + space 2. terminal 검색 후 enter
Shell
복사
뭔가 있어 보이게 마우스를 쓰지 않고 터미널을 킵니다.
mkdir exercise && cd exercise
Shell
복사
일단 임시 디렉토리를 만들고 그곳으로 들어가봅니다. (&&를 써서 한 줄로 할 시에 더 멌잇읆)
dotnet new console
Shell
복사
해당 shell command 실행
만약 여기서 막혔다면?

dotnet new console 명령어가 정상적으로 실행됐을 시

몇 초가 흐른 후 위와 같은 메시지가 뜹니다.
아뭍흕 dotnet new console 이라는 명령어로 이 디렉토리는 C# 콘솔 프로젝트가 됐습니다.
ls -la
Shell
복사
디렉토리를 살펴보니 Program.cs, exercise.csproj라는 파일과 obj라는 디렉토리가 생겼네요!
여기서 .csC#(C Sharp)의 확장자 이름이고,
Program은 새로운 프로젝트를 생성할 시의 디폴트 네임입니다.
$(Project Directory).csproj 파일은 프로젝트의 소스 파일입니다.
vi Program.cs
Shell
복사
42 국룰인 vi 편집기로 열어볼까요?
(분명 제목에 VS Code 어쩌구 했지만 VS Code 안 쓰셔도 됩니다)
Program.cs에는 위와 같이 디폴트 코드가 작성돼 있습니다.
CLI 창에 “Hello World!”라는 문자열을 출력하는 간단한 코드입니다.
이 파일을 한 번 VS Code로 열어볼까요?
위의 이미지처럼 무시무시한 빨간줄이 뜬다면?
코드에 빨간줄, 그리고 이상이 없다면, 아래 명령어를 터미널에 입력해 봅시다. (맥 터미널, VS Code 상관 없음)
dotnet run
Shell
복사
약간의 시간이 흐른 후, “Hello World!”라는 문자열이 출력됩니다.

PS. C#, C의 차이점 몇 가지

1. 헤더와 헤더 파일이 없습니다.
C++에서는 클래스 선언을 Header(.h)에 하고 #include.cpp 파일의 클래스를 사용하지만, C#은 그렇지 않습니다. using System; 이 비슷한 기능이라고 볼 수 있습니다. (자세한 설명은 길어지니 패스)
2. C#은 C와 다르게 문자열(String)이라는 자료형이 있습니다. (Farewell To Arrays!)
String greeting = "Hello 42Seoul!"
C#
복사
3. 주석 스타일은 C와 같습니다.
4. 다만 char 자료형이 2바이트입니다.
char scremaer = '*'; // 깜빡하고 변수 이름을 안 바꿨습니다. ^^)9 /* ** 주석 스타일은 ** C 언어와 ** 동일합니다 */
C#
복사
C는 아스키코드, C#은 유니코드(전 세계 언어를 2byte 코드로 나타낸 것)를 사용하기 때문에 차이가 납니다.
별개로 byte라는 1 바이트 크기의 자료형이 있습니다.
PS. 1) 변수 여러 개 출력하기
5. 조건문과 반복문
int quarante_deux = 42; ... if (quarante_deux) Console.WriteLine("{0}{1}", greeting, screamer);
C#
복사
C 언어라면 당연히 실행될 저 조건문에 문제가 생겨 실행이 되지 않습니다.
C#에서 실행되지 않는 이유는 간단한 이유인데,
quarante_deux의 자료형이 boolean형이 아닌 int형이기 때문입니다.
따라서 코드를 이렇게 수정해야 합니다.
if (quarante_deux > 0) // 혹은 if (quarante_deux != 0)
C#
복사
같이보기

반복문의 경우

int[] arr = new int[30]; for(int i = 0; i < arr.Length; i++) { Console.Write("{0}", arr[i]); } /* 여기서 new는 배열을 0으로 선언과 동시에 초기화하는 기능입니다. memset, calloc? C#은 new! */
C#
복사
0을 30번 출력합니다. arr 배열이 0으로 초기화 된 것을 확인할 수 있습니다.
int[] arr = new int[30]; foreach(int value in arr) { Console.Write("{0}", value); }
C#
복사
위의 코드와 정확히 똑같습니다. JavaScript를 하신 분이라면 익숙한 foreach문도 있습니다. (JS에서는 forEach)

마치며

C#에 흥미가 있으신 분들, 특히 ‘unity와 C#을 배워볼까?’하며 흥미는 있지만, 주저하시는 분들이 재밌게 읽으셨다면 좋겠습니다!
조잡한 글 읽어주셔서 감사합니다!