[C#] Version 클래스 분석

System.Version은 버전 정보를 표현하는 클래스 입니다.

버젼은 다음과 같이 표현됩니다.

{major}.{minor}.{build}.{revision}

기본적으로 {major}.{minor}는 표현 되어야 합니다. 빌드 번호 또는 리비젼은 생략 가능합니다.

또한 리비젼MajorRevisionMinorRevision으로 나눠서 관리할 수 있는데 리비젼을 유지한 채 핫픽스 등으로 버젼을 올려야 할 경우 사용합니다.
MajorRevision리비전의 상위 16비트를 사용하고 MinorRevision은 하위 16비트를 사용합니다. 그런데 일반적으로 이렇게까지 쓸 일은 없을 것 같습니다.

Version은 비교할 수 있습니다.

// 버젼 구조 확인
var v1 = Version.Parse("1.2");
var v2 = Version.Parse("1.2.2022");
var v3 = Version.Parse("1.2.2022.2");

Console.WriteLine($"Version: {v3}");
Console.WriteLine($"Major : {v3.Major}");
Console.WriteLine($"Minor : {v3.Minor}");
Console.WriteLine($"Build : {v3.Build}");
Console.WriteLine($"Revision : {v3.Revision}");
Console.WriteLine($"MajorRevision : {v3.MajorRevision}");
Console.WriteLine($"MinorRevision : {v3.MinorRevision}");

Console.WriteLine();

Console.WriteLine($"v1 = {v1}");
Console.WriteLine($"v2 = {v2}");
Console.WriteLine($"v3 = {v3}");

Console.WriteLine($"v1 >= v2 = {v1 >= v2}");
Console.WriteLine($"v1 >= v3 = {v1 >= v3}");
Console.WriteLine($"v2 >= v1 = {v2 >= v1}");
Console.WriteLine($"v2 >= v3 = {v2 >= v3}");
Console.WriteLine($"v3 >= v1 = {v3 >= v1}");
Console.WriteLine($"v3 >= v2 = {v3 >= v2}");

Console.WriteLine();

var v4 = Version.Parse("1.2");
var v5 = Version.Parse("1.2.0");

Console.WriteLine($"v4 = {v4}");
Console.WriteLine($"v5 = {v5}");
Console.WriteLine($"v4 >= v5 = {v4 >= v5}");
Console.WriteLine($"v5 >= v4 = {v5 >= v4}");

| 결과

Version: 1.2.2022.2
Major : 1
Minor : 2
Build : 2022
Revision : 2
MajorRevision : 0
MinorRevision : 2

v1 = 1.2
v2 = 1.2.2022
v3 = 1.2.2022.2
v1 >= v2 = False
v1 >= v3 = False
v2 >= v1 = True
v2 >= v3 = False
v3 >= v1 = True
v3 >= v2 = True

v4 = 1.2
v5 = 1.2.0
v4 >= v5 = False
v5 >= v4 = True

참고로 버젼 "1.0.0"은 버젼 “1.0” 보다 상위 버젼으로 평가됩니다.

좋아요 2