본문 바로가기
개발/Unity 내일배움캠프 TIL

C# 언어 기본 구조

by 석시 2023. 8. 14.



들어가며

제목을 기본 구조….라고 했지만, 사실상 C# 및 에디터 잡기술 모음집이다.

개발에서 사용되는 각종 언어들의 의미, 그리고 C#은 대부분 Visual Studio를 사용하기 때문에 해당 에디터 단축키 등을 한 게시글에 모아서 정리해보고자 한다.

기본 구조

// Hello World.cs
using System;

namespace HelloWorld
{
  class program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Hello World!");    
    }
  }
}

using : 네임스페이스를 사용하기 위한 코드

System 네임스페이스 : Console 클래스를 사용하기 위해 필요

namespace : 클래스 및 기타 네임스페이스를 담고 있는 컨테이너

static void Main() : 프로그램이 시작할 때 자동으로 호출되는 메서드 → C#의 진입점

비주얼 스튜디오에서 실제 프로젝트를 생성해보면, using System;이 없는데도 잘 동작하는 것을 볼 수 있는데 이는 전역 using 때문이다.

프로젝트 탭 → 속성 → 전역 using에서 확인할 수 있다.

리터럴 (literal)

리터럴은 변수와 다르게 프로그램에서 직접 사용되는 상수이다.

C#에서 리터럴은 컴파일러에 의해 상수 값으로 처리된다.

  • 리터럴 정리
    • 정수형 리터럴
      • 10 (int)
      • 0x10 (16진수 int)
      • 0b10 (2진수 int)
      • 10L (long)
      • 10UL (unsigned long)
    • 부동소수점형 리터럴
      • 3.14 (double)
      • 3.14f (float)
      • 3.14m (decimal)
    • 문자형 리터럴
      • 'A' (char)
      • '\n' (개행 문자)
      • '\u0022' (유니코드 문자)
    • 문자열 리터럴
      • "Hello, World!" (string)
      • "문자열 내 "따옴표" 사용하기"
      • @"문자열 내 개행 문자 사용하기"

변수 이름에 대해

변수 이름은 식별자 (Identifier) 라고 한다.

변수 이름을 지을 때 몇 가지 고려할 요소가 있어 정리해보고자 한다.

키워드

예약된 단어들로써, 해당 이름을 변수 이름으로 사용할 수 없다.

abstract  as  base  bool  break  byte  case  catch  char  checked  class  const  continue decimal  default  delegate  do  double  else  enum  event  explicit  extern  false  finally fixed  float  for  foreach  goto  if  implicit  in  int  interface  internal  is  lock long  namespace  new  null  object  operator  out  override  params  private  protected  public readonly  ref  return  sbyte  sealed  short  sizeof  stackalloc  static  string  struct  switch this  throw  true  try  typeof  uint  ulong  unchecked  unsafe  ushort  using  virtual  void volatile  while

식별자 규칙

이것 역시 변수 이름 규칙이다.

뒤에 나올 코드 컨벤션과 달리 해당 내용을 지키지 않으면 컴파일러가 알아보지 못해 오류가 발생한다.

  • 첫 문자는 알파벳, 언더스코어(_)가 올 수 있습니다.
  • 두번째 문자부터는 알파벳, 언더스코어, 숫자가 올 수 있습니다.
  • 대소문자를 구분합니다.
  • 키워드와 같은 이름으로 사용할 수 없습니다.

코드 컨벤션

코드 컨벤션은 개발자들끼리 약속한 코드 작성 규칙이라고 생각하면 된다.

기본적으로 PascalCase, camelCase, UPPERCASE 등이 있다.

class MyClass
{
    // 필드는 camelCase 표기법을 사용합니다.
    private int myField;

    // 프로퍼티는 PascalCase 표기법을 사용합니다.
    public int MyProperty { get; set; }

    // 메서드는 PascalCase 표기법을 사용합니다.
    public void MyMethod()
    {
        if (true)
        {
            // 중괄호는 새로운 줄에서 시작합니다.
        }

        // 코드 블록은 탭(tab) 또는 스페이스(space) 4칸으로 들여씁니다.

        // 관련 없는 코드 사이에는 빈 줄을 사용하여 구분합니다.
				// 블록 사이에는 두 줄을 띄어씁니다.
				
		    /*
		    여러 줄 주석을 사용할 때는
		     / * 를 새로운 줄에서 시작하고,
		     * / 를 새로운 줄에서 끝내도록 합니다.
		    */
		
		    // 한 줄 주석은 이렇게 사용합니다.
		    int a = 10; // 코드 끝에도 한 줄 주석을 사용할 수 있습니다.
		}
}

일반적인 C# 코딩 규칙
C#에서 일반적으로 사용되는 코딩 규칙에 대해 알아봅니다. 코딩 규칙은 코드를 일관되게 표시하고 코드 복사, 변경 및 유지 관리를 용이하게 합니다.
https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions
Microsoft에서 제공하는 C# 코드 컨벤션
Naming and Code Style Tips for C# Scripting in Unity
Pick up best practices for styling your C# code in Unity. These tips can help you and your team create a cleaner, more readable and scalable codebase.
https://unity.com/how-to/naming-and-code-style-tips-c-scripting-unity
유니티에서 권장하는 코드 컨벤션

참고) Visual Studio 단축키

도구 탭 - 옵션 - 환경 - 키보드에서 확인 및 설정 가능

F5 : 디버그

F6 : 프로그램 빌드

Ctrl + F5 : 디버그 없이 실행

Ctrl + Space : IntelliSense

Ctrl + K → Ctrl + C : 주석 처리

Ctrl + K → Ctrl + U : 주석 해제


Uploaded by N2T