2013-10-04 2 views
1

이것은 많은 질문이 아니며 주석 요청입니다.날짜 속성의 명명 규칙

나는 항상 날짜 또는 날짜 시간 형식 인 명명 된 속성 또는 변수에 날짜을 포함시키는 것을 싫어했습니다. 예를 들면 다음과 같습니다.

DateTime DateFileOpened {get; set;} 

내게는 변수 이름에 데이터 형식을 포함하고있는 것 같습니다. 나는에 정착 한 무엇

는 예를 일반적으로

DateTime WhenFileOpened {get; set;} 

를 들어, 날짜 대신에 단어를 '사용하는 것입니다, 나는 IS의 사용이 도난 또는 부울 변수에 있음했습니다/속성.

그래서 질문입니다. 아무도 날짜에 대한 더 나은 명명 규칙을 갖고 있습니까? 나는 일반적으로 접두사로 "date_"를 사용

답변

1

변하기 쉬운.

다른 방법으로 당신은 사용할 수 있습니다 독자가 컨텍스트 인식하지 못하는 경우

DateTime OpenedOn { get; set; } 

명명 방법이 어렵다; 이 메소드가 파일의 속성을 저장하는 데 사용되는 클래스에 있으면

var fileOpenedOn = file.OpenedOn; 

이 좋을 것입니다.

0

:

date_created 
date_end 
date_deleted 
date_modified 

그런 다음 당신은 "date_FileOpened"와 같은 날짜에 대한 명명 규칙을 넣을 수 있습니다

날짜 시간에 "날짜"를 지정할 때 나는 너무 중복을 싫어하는
3

MSDN naming conventions for properties은 성명이 명사 또는 명사이어야하며, DateFileOpened이 충족되지만 WhenFileOpened은 만족하지 않는다는 조건을 제공해야합니다.

핵심 .NET Framework 클래스에서 사용하는 속성 이름을 확인하는 데 도움이 될 수 있습니다. 다음 코드는 모든로드 된 어셈블리에서 유형 DateTime의 모든 속성의 이름을 추출합니다 :

foreach (var v in AppDomain.CurrentDomain.GetAssemblies() 
    .SelectMany(a=>a.GetTypes()) 
    .Where(a=>a.IsClass) 
    .SelectMany(a=>a.GetProperties()) 
    .Where(a=>a.PropertyType == typeof(DateTime))) 
      Console.WriteLine("{0}.{1}", v.DeclaringType, v.Name); 

출력은 장소에 몇 가지 규칙을 보여줍니다.

  1. ______Date

    , ____Time (예 : System.Net.Mime.ContentDisposition.CreationDate, System.Net.HttpWebRequest.Date, System.Timers.ElapsedEventArgs.SignalTime). Date의 사용은 날짜와 시간을 모두 반환 할 수있는 경우 혼란 스러울 수 있지만 Time 그 자체는 덜 모호한 것으로 간주 될 수 있습니다. (날짜없이 시간을 반환하는 속성은 TimeSpan보다는 DateTime의 반환 유형을 가질 것이다.)

  2. _____DateTime, _____TimeStamp. (예 : System.Globalization.GregorianCalendar.MinSupportedDateTime, System.Diagnostics.TraceEventCache.DateTime, System.Net.Cookie.Timestamp). 이 규칙은 장황하지만 전체 타임 스탬프 (Date + Time)가 의도적 인 것은 명백합니다.

  3. 아니요. (예 : System.Net.FtpWebResponse.LastModified, System.Globalization.DaylightTime.Start, System.Net.Cookie.Expires). 이름에 반환 유형을 포함하지 않는 것은 대부분의 속성 이름 (String.Length이 아니라 String.LengthInt)과 일치합니다.

일관된 접근법이 없으므로, 이들 패턴 중 어느 것도 수용 가능한 것으로 간주 될 수있다.

그러나, DateFileOpened은 파일을 한 번만 열 수 있음을 나타냅니다. 그렇지 않은 경우 FileLastOpened 또는 심지어 간단히 LastOpened과 같은 속성 이름은 속성 이름에 반환 유형을 포함하지 않고 DateTime 반환 유형을 의미 할 수 있습니다. 피할 수없는 경우 FileOpenedTime과 같은 이름은 .NET 가이드 라인과 일치하며 프레임 워크 속성 이름과 일치하며 모호하지 않습니다.