2017-10-14 12 views
0

그래서 제가 만들고있는 응용 프로그램의 모듈 가능성에 대해 조금 놀고 있습니다. 버전을 만들고 싶습니다.1.0.0 형식의 구조체가 가능합니까?

dll 인이 모듈은이 모듈의 버전에 대한 속성을 가진 인터페이스를 구현합니다. 형식은 "Major.Minor.Build"여야합니다.

String 유형의 속성을 만드는 경우 "Major.Minor"또는 "Major.Minor.Build.Revision"와 같은 버전의 가능성이 있습니다. 나는 그것을 막고 싶다.

그래서 Double과 같은 구조체이지만 세 번째 숫자가있는 구조체에 대한 아이디어가있었습니다. 제 질문은 지금 가능합니다. 그렇다면 어떻게 구현할 수 있습니까? 클래스에서

은 다음과 같아야합니다 : 당신은 주로 경우

public class Version: IVersion 
{ 
    public int Major { get; } 
    public int Minor { get; } 
    public int Build { get; } 

    public override string ToString => 
     $”{Major}.{Minor}.{Build}” 

    public Version(int major, int minor, int build) 
    { 
     //omitted argument validation 
     Major = major; 
     Minor = minor; 
     Build = build; 
    } 
} 

: 당신의 도움 :)

+0

System.Version 클래스를 살펴보고 3 가지 빌드 구성 요소와 동일하게 수행하십시오. – ASh

답변

1

은 당신의 요구를 충족 class 생성에 대한

public class MyModuleContext : IModuleContext 
{ 
    public ModuleVersion Version { get; set; } = 1.0.0; 
    // more interface things ... 
} 

감사합니다 주위에 IVersion 참조를 전달할 것입니다, 당신은 참조 유형으로 이것을 구현하는 것이 좋습니다 또는 당신은 모든 곳에서 값 유형을 권투 것입니다.

값 평등 의미론, 비교 논리 등을 구현하려는 경우 귀하에게 달려 있습니다. 모두 매우 사소한 것입니다.