[C#] C# 기본적인 문법을 살펴보자

2024. 7. 5. 01:14C#

728x90
반응형

안녕하세요. 진득 코딩입니다. 이번 시간에는 C#에 필요한 기본적인 문법들을 살펴보는 시간을 가져보도록 하겠습니다. C#의 기본적인 문법은 자바와 비슷한 부분들이 많기 때문에 자바를 하셨던 분들은 조금 더 수월하게 배울 수 있습니다.

.Net 버전 살펴보기

 C#의 기본적인 문법을 살펴보기 전에 .Net 버전에 대해서 먼저 살펴보도록 하겠습니다. C#에서는 9.0버전부터 전역변수를 사용할 수 있습니다. 따라서 그 전 버전을 사용하게 된다면 이러한 전역변수 사용을 지양해야 합니다. 이렇게 버전별로 사용할 수 있는 달라질 수 있기 때문에 개발 전 현재 사용하는 언어의 버전이 어떤 버전인지 확인하는 것이 중요합니다.

.NET Framework 버전을 확인하려면 솔루션 탐색기에서 프로젝트를 우클릭해줍니다. 그리고 속성을 선택하시고 Appication에 보시면 Target framework 메뉴를 찾을 수 있습니다. 이 메뉴에서 현재 사용하고 있는 .NET Framework의 버전을 확인해보실 수 있습니다.

using과 namespace

 전체적으로 기본적인 코드의 구조를 살펴보도록 하겠습니다. 가장 위에 using이라는 코드가 보이는데 이는 import와 비슷하다고 보시면 됩니다. 클래스를 감싸고 있는 namespace가 보이고 partial 클래스가 Form 클래스를 상속받는 Form1 클래스라는 것을 보여줍니다. Form1 클래스의 생성자 밑에 InitailizeComponent();가 보입니다. 처음부터 전체적으로 다 보려면 너무 복잡하기 때문에 namespace에 대해서 먼저 살펴보도록 하겠습니다.

 네임 스페이스는 클래스나 함수에 이름을 붙여서 구분해주는 역할을 합니다. 예를 들어서 school이라는 두 개의 클래스가 존재할 때에 각각의 클래스가 같은 이름이기 때문에 구분할 방법이 없습니다. 이때 namespace로 각각의 클래스를 묶어서 john.school과 linda.school로 사용해서 구분이 가능해집니다.

 만약 모듈화를 하여 다른 모듈에서 해당 클래스만 계속해서 사용할 때에 계속 john.school로 사용하지 않고  해당 모듈에 using john을 적어서 이 모듈에는 john이라는 namespace안에 있는 school이나 변수들임을 표현할 수 있습니다.

코드 작성법

 간단하게 코드 작성하는 방법을 살펴보도록 하겠습니다. 클래스나 함수의 시작과 끝은 {}로 표현하고 자바와 달리 코드 맨뒤에 {를 적고 내리는 것이 아니라 {도 그냥 밑에 적는게 C# 스타일입니다. 각각의 내부 클래스나 함수는 tab으로 들여써서 구분해주면 됩니다. 여담으로 요즘 트랜드는 tab이 아니라 spacebar 두번으로 많이 표현한다고 합니다.

 줄 간격과 들여쓰기가 엉망이어도 잘 열고 닫기만 해준다면 정상적으로 작동하긴 합니다. 하지만 이런 코드는 가독성이 굉장히 떨어지기 때문에 지양하는 것이 좋습니다.

기본 자료형

 C#에는 uint라는 것이 있습니다. 해당 자료형은 int와 같은 메모리를 할당받지만 양수만 가능하기 때문에 int가 표현할 수 있는 양수에 비해서 두배의 숫자를 표현할 수 있습니다.

 위와 같이 여러 자료형들은 한번 읽어보면 알 수 있습니다. 그렇다면 여기에서 bool은 왜 4byte를 차지하는지 살펴보도록 하겠습니다.

 bool을 사용하기 위해 끌어쓰는 Boolean이라는 struct입니다. 살펴보시면 단순히 true or false를 표현하기 위해 0이나 1만 표현하는 것이 아닙니다. 문자열로 "True"와 "False"를 표현하기 때문에 4byte의 메모리를 할당받는 것입니다.

 데이터를 주고 받을 때에는 반드시 자료형을 맞춰주어야 합니다. 숫자를 문자열로 바꿀 때에는 ToString() 함수를 사용하면 되고 문자열을 숫자로 바꿀 때에는 int.Parse 함수를 사용하면 됩니다.

 var이라는 자료형은 만능인 자료형입니다. 자동으로 자료형을 지정해주기 때문에 굉장히 편리합니다. 하지만 가독성면에서도 좋지 않고 런타임 효율성과 속도에도 영향을 미칠 수 있기 때문에 var를 남발하지 않는 것이 좋습니다.

배열

 1차원 배열은 new를 사용해서 생성하거나 각각의 자리에 숫자를 지정해주어서 생성하는 방법이 있습니다. 2차원 배열도 마찬가지입니다. 또한 int [][]로 표현할 수도 있지만 int[ , ]로 표현할 수도 있습니다.

함수

 문자열 관련된 대표적인 함수들입니다. 문자열을 사용하는데 굉장히 유용한 함수들이기 때문에 손에 익혀두는 것이 좋습니다. 문자열 관련 함수에 대해서 더 알아보고 싶다면 바로 밑에 적어드린 링크를 통해서 들어가시길 바랍니다.

https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/strings/

 함수의 구조를 살펴보도록 하겠습니다. 가장 앞에 적는 자료형이 return되는 값의 자료형을 적어줍니다. 그 후에 함수의 이름을 적어주고 ()안에는 입력 변수들을 적어줍니다. 각각의 입력 변수들도 자료형을 하나하나 적어주도록 합니다. 그 후에는 {}를 적어서 함수의 내용을 이 {}안에 적어주면 됩니다.

조건문

 조건문 중에서 if문에 대해서 먼저 살펴보도록 하겠습니다. if문은 if 뒤에 특정 조건을 적어주고 그 조건에 부합하면 해당 함수를 실행하고 다니면 밑으로 내리게 됩니다. 두 번째 조건부터는 else if를 적어서 다른 특정 조건을 적어줄 수 있습니다. 마지막 조건은 else만 적어주어 위에 조건에 걸리지 않은 모든 경우의 수에 대해서 반응하게 됩니다.

 switch문은 각각의 조건에 맞는 case에 가서 해당 함수가 반응하고 빠져나오는 함수입니다. switch옆에 조건을 적어주고 해당 변수가 조건에 맞는 case를 찾아가게 됩니다. 만약에 없다면 default로 가게 되어 함수를 빠져나오게 됩니다.

반복문

 첫번째로 살펴볼 반복문은 for문입니다. 처음 int i의 초기값을 적어주고 두 번째 조건에는 반복 조건에 대해서 적어주도록 합니다. 마지막 조건에는 증감에 대해서 적어주게 되면 for문이 완성되게 됩니다.

foreach문은 파이썬의 for문과 비슷한 반복문입니다. 특정 배열이나 인덱스로 접근 가능한 자료에 대해서 하나씩 쏙쏙 뽑아주게 됩니다.

 while문은 while 옆에 반복 조건을 적어주고 이 조건이 성립될 때까지 루프가 돌아가게 됩니다. while문은 빠져나갈 수 있게 설계하지 않으면 내부적으로 계속해서 반복문이 돌아서 무한 루프 상태에 빠질 수 있기 때문에 주의해서 사용해야 합니다.


 지금까지 기본적인 C#의 문법에 대해서 살펴보았습니다. 문법들이 자바와 흡사한 부분이 많아서 자바를 처음 배울 때보다는 그래도 수월하게 학습했습니다. 이번 포스팅은 여기까지입니다. 다음 시간에는 이런 기본 문법을 이용하여 간단한 응용을 해보도록 하겠습니다. 끝까지 봐주셔서 감사합니다.😀

728x90
반응형
LIST