C#
C#] 식별자/변수명 네이밍 규칙, convention
Fastlane
2024. 1. 12. 17:03
728x90
반응형
identifier(식별자)란?
type(class, interface, struct, delegate, enum) type명, 변수명, member명, namespace명이다.
네이밍 규칙
identifier는 반드시 아래 규칙을 따라야 한다. 아래 규칙을 따르지 않으면 C# compiler가 error를 발생한다.
- Identifier는 반드시 문자 또는 밑줄선(_)으로 시작한다.
if라는 이름의 식별자를 선언하려면 @prefix를 붙여서 @if 로 선언하면 된다.
네이밍 conventions
규칙에 더해, identifier conventions이 .NET API 전체에 사용된다. 이 conventions은 compiler가 강제하지 않더라도, name의 일관성을 제공한다. 다르게 사용해도 무방하다.
convention은 아래와 같다.
- Interface name은 I로 시작한다.
public interface IWorkerQueue
{
}
- Attribute type은 Attribute라는 단어로 끝난다.
- Identifier는 2개의 연속 underscore(__)를 포함하지 않는다.
- 변수, 함수, 클래스 이름에는 의미있고 설명이 들어간 이름을 사용한다.
- PascalCase : type names, namespaces, 모든 public members, class names, method names, constant names
public class DataService
{
}
public record PhysicalAddress(
string Street,
string City,
string StateOrProvince,
string ZipCode);
public struct ValueCoordinate
{
}
public delegate void DelegateType(string message);
public class ExampleEvents
{
// A public field, these should be used sparingly
public bool IsValid;
// An init-only property
public IWorkerQueue WorkerQueue { get; init; }
// An event
public event Action EventProcessing;
// Method
public void StartEventProcessing()
{
// Local function
static int CountQueueItems() => WorkerQueue.Count;
// ...
}
}
- camelCase : method arguments, local variables, private fields
public class DataService
{
private IWorkerQueue _workerQueue;
}
public class DataService
{
private static IWorkerQueue s_workerQueue;
[ThreadStatic]
private static TimeSpan t_timeSpan;
}
public T SomeMethod<T>(int someNumber, bool isValid)
{
}
- Private instance field는 underscore(_)로 시작한다.
- name에 유명한 것 제외 축약형이나 두문자를 사용하는 걸 피한다.
- 단순 반복 counters를 제외하고는 한글자 이름을 사용하지 않는다.
728x90
반응형