ソースコード
using System.Linq;
internal readonly struct VersionNumber
{
private readonly string m_version;
public int Major { get; }
public int Minor { get; }
public int Patch { get; }
public VersionNumber( string version )
{
var array = version
.Split( "." )
.Select( x => int.TryParse( x, out var result ) ? result : default )
.ToArray()
;
Major = array.ElementAtOrDefault( 0 );
Minor = array.ElementAtOrDefault( 1 );
Patch = array.ElementAtOrDefault( 2 );
m_version = $"{Major}.{Minor}.{Patch}";
}
public VersionNumber
(
int major,
int minor,
int patch
)
{
Major = major;
Minor = minor;
Patch = patch;
m_version = $"{Major}.{Minor}.{Patch}";
}
public static implicit operator string( in VersionNumber versionNumber )
{
return versionNumber.m_version;
}
public override string ToString()
{
return m_version;
}
}