C# 코드 컨벤션
1. 네이밍 규칙:
- 클래스, 메서드, 변수 등의 이름은 명확하고 의미 있게 지어야 합니다.
- 클래스명: PascalCase (예: MyClass)
- 메서드명, 속성명: PascalCase (예: CalculateTotal())
- 변수명: camelCase (예: myVariable)
- 상수: 대문자 스네이크케이스 (MY_CONSTANT)
2. 중괄호 스타일:
- 중괄호는 새로운 줄에서 시작합니다.
if (condition)
{
// code
}
3. 들여쓰기:
- 탭 또는 스페이스 4개를 사용하여 들여쓰기를 합니다.
4. 코드 정렬:
- 비슷한 유형의 코드는 수직 정렬을 통해 가독성을 높일 수 있습니다.
int variable1 = 42;
string variable2 = "Hello";
5. 주석:
- 코드에 주석을 추가하여 코드의 의도를 설명하고 필요한 경우 문제 및 해결 방법을 기록합니다.
6. 네임스페이스 및 클래스 구조:
- 각 네임스페이스와 클래스는 새로운 줄에서 시작합니다.
- 클래스의 내부 구조는 가독성을 높이기 위해 섹션으로 나눌 수 있습니다.
7. 속성 사용:
- Auto-implemented 속성을 적극적으로 활용합니다.
8. LINQ 사용:
- LINQ 쿼리를 사용하여 코드를 간결하게 작성할 수 있습니다.
이외에도 더 다양한 규칙이 있으며, 특정 팀 또는 프로젝트에서는 추가적인 규칙이나 사용자 정의 규칙을 정의하기도 함
주요 코드 컨벤션을 볼 수 있는 C# 코드
using System;
public class Person
{
// private 멤버 변수는 camelCase를 사용합니다.
private string firstName;
private string lastName;
// public 속성은 PascalCase를 사용하며, 프로퍼티명도 PascalCase로 합니다.
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
// 생성자는 클래스명과 동일하게 PascalCase를 사용합니다.
public Person(string firstName, string lastName)
{
// 생성자에서는 매개변수명과 멤버 변수명이 일치하도록 합니다.
this.firstName = firstName;
this.lastName = lastName;
}
// 메서드명은 PascalCase를 사용합니다.
public void DisplayFullName()
{
Console.WriteLine($"Full Name: {FirstName} {LastName}");
}
}
class Program
{
static void Main()
{
// 인스턴스 생성 시 new 키워드 뒤에 클래스명을 PascalCase로 사용합니다.
Person person = new Person("John", "Doe");
// 메서드 호출은 PascalCase를 사용합니다.
person.DisplayFullName();
}
}
https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions
댓글
이 글 공유하기
다른 글
-
[Error] Library\PackageCache\com.unity.inputsystem@1.2.0\InputSystem\Plugins\UnityRemote\UnityRemoteSupport.cs(284,49): warning CS0252: Possible unintended reference comparison; to get a value comparison, cast the left hand side to type 'string'
[Error] Library\PackageCache\com.unity.inputsystem@1.2.0\InputSystem\Plugins\UnityRemote\UnityRemoteSupport.cs(284,49): warning CS0252: Possible unintended reference comparison; to get a value comparison, cast the left hand side to type 'string'
2023.11.22