Class SemVersion
A semantic version implementation. Conforms with v2.0.0 of http://semver.org
Inherited Members
Namespace: Semver
Assembly: RedLoader.dll
Syntax
public sealed class SemVersion : IComparable<SemVersion>, IComparable, ISerializable
  Constructors
SemVersion(int, int, int, string, string)
Constructs a new instance of the SemVersion class.
Declaration
public SemVersion(int major, int minor = 0, int patch = 0, string prerelease = "", string build = "")
  Parameters
| Type | Name | Description | 
|---|---|---|
| int | major | The major version.  | 
      
| int | minor | The minor version.  | 
      
| int | patch | The patch version.  | 
      
| string | prerelease | The prerelease version (e.g. "alpha").  | 
      
| string | build | The build metadata (e.g. "nightly.232").  | 
      
SemVersion(Version)
Constructs a new instance of the SemVersion class from a Version.
Declaration
public SemVersion(Version version)
  Parameters
| Type | Name | Description | 
|---|---|---|
| Version | version | The Version that is used to initialize the Major, Minor, Patch and Build.  | 
      
Properties
Build
Gets the build metadata.
Declaration
public string Build { get; }
  Property Value
| Type | Description | 
|---|---|
| string | The build metadata. Empty string if there is no build metadata.  | 
      
Major
Gets the major version.
Declaration
public int Major { get; }
  Property Value
| Type | Description | 
|---|---|
| int | The major version.  | 
      
Minor
Gets the minor version.
Declaration
public int Minor { get; }
  Property Value
| Type | Description | 
|---|---|
| int | The minor version.  | 
      
Patch
Gets the patch version.
Declaration
public int Patch { get; }
  Property Value
| Type | Description | 
|---|---|
| int | The patch version.  | 
      
Prerelease
Gets the prerelease version.
Declaration
public string Prerelease { get; }
  Property Value
| Type | Description | 
|---|---|
| string | The prerelease version. Empty string if this is a release version.  | 
      
Methods
Change(int?, int?, int?, string, string)
Make a copy of the current instance with changed properties.
Declaration
public SemVersion Change(int? major = null, int? minor = null, int? patch = null, string prerelease = null, string build = null)
  Parameters
| Type | Name | Description | 
|---|---|---|
| int? | major | The value to replace the major version or null to leave it unchanged.  | 
      
| int? | minor | The value to replace the minor version or null to leave it unchanged.  | 
      
| int? | patch | The value to replace the patch version or null to leave it unchanged.  | 
      
| string | prerelease | The value to replace the prerelease version or null to leave it unchanged.  | 
      
| string | build | The value to replace the build metadata or null to leave it unchanged.  | 
      
Returns
| Type | Description | 
|---|---|
| SemVersion | The new version object.  | 
      
Remarks
The change method is intended to be called using named argument syntax, passing only those fields to be changed.
Examples
To change only the patch version:
version.Change(patch: 4)
  
  Compare(SemVersion, SemVersion)
Compares the specified versions.
Declaration
public static int Compare(SemVersion versionA, SemVersion versionB)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | versionA | The first version to compare.  | 
      
| SemVersion | versionB | The second version to compare.  | 
      
Returns
| Type | Description | 
|---|---|
| int | A signed number indicating the relative values of   | 
      
CompareByPrecedence(SemVersion)
Compares two semantic versions by precedence as defined in the SemVer spec. Versions that differ only by build metadata have the same precedence.
Declaration
public int CompareByPrecedence(SemVersion other)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | other | The semantic version.  | 
      
Returns
| Type | Description | 
|---|---|
| int | A value that indicates the relative order of the objects being compared.
The return value has these meanings:
Less than zero: This instance precedes   | 
      
CompareTo(SemVersion)
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
Declaration
public int CompareTo(SemVersion other)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | other | An object to compare with this instance.  | 
      
Returns
| Type | Description | 
|---|---|
| int | A value that indicates the relative order of the objects being compared.
The return value has these meanings:
Less than zero: This instance precedes   | 
      
CompareTo(object)
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
Declaration
public int CompareTo(object obj)
  Parameters
| Type | Name | Description | 
|---|---|---|
| object | obj | An object to compare with this instance.  | 
      
Returns
| Type | Description | 
|---|---|
| int | A value that indicates the relative order of the objects being compared.
The return value has these meanings:
Less than zero: This instance precedes   | 
      
Exceptions
| Type | Condition | 
|---|---|
| InvalidCastException | The   | 
      
Equals(SemVersion, SemVersion)
Checks whether two semantic versions are equal.
Declaration
public static bool Equals(SemVersion versionA, SemVersion versionB)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | versionA | The first version to compare.  | 
      
| SemVersion | versionB | The second version to compare.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | 
Equals(object)
Determines whether the specified object is equal to this instance.
Declaration
public override bool Equals(object obj)
  Parameters
| Type | Name | Description | 
|---|---|---|
| object | obj | The object to compare with this instance.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | true if the specified object is equal to this instance, otherwise false.  | 
      
Overrides
Exceptions
| Type | Condition | 
|---|---|
| InvalidCastException | The   | 
      
GetHashCode()
Returns a hash code for this instance.
Declaration
public override int GetHashCode()
  Returns
| Type | Description | 
|---|---|
| int | A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.  | 
      
Overrides
GetObjectData(SerializationInfo, StreamingContext)
Populates a SerializationInfo with the data needed to serialize the target object.
Declaration
public void GetObjectData(SerializationInfo info, StreamingContext context)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SerializationInfo | info | The SerializationInfo to populate with data.  | 
      
| StreamingContext | context | The destination (see SerializationInfo) for this serialization.  | 
      
Parse(string, bool)
Converts the string representation of a semantic version to its SemVersion equivalent.
Declaration
public static SemVersion Parse(string version, bool strict = false)
  Parameters
| Type | Name | Description | 
|---|---|---|
| string | version | The version string.  | 
      
| bool | strict | If set to true minor and patch version are required, otherwise they are optional.  | 
      
Returns
| Type | Description | 
|---|---|
| SemVersion | The SemVersion object.  | 
      
Exceptions
| Type | Condition | 
|---|---|
| ArgumentNullException | The   | 
      
| ArgumentException | The   | 
      
| InvalidOperationException | The   | 
      
| OverflowException | The Major, Minor, or Patch versions are larger than .
 | 
      
PrecedenceMatches(SemVersion)
Returns whether two semantic versions have the same precedence. Versions that differ only by build metadata have the same precedence.
Declaration
public bool PrecedenceMatches(SemVersion other)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | other | The semantic version to compare to.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | true if the version precedences are equal.  | 
      
ToString()
Returns the string equivalent of this version.
Declaration
public override string ToString()
  Returns
| Type | Description | 
|---|---|
| string | The string equivalent of this version.  | 
      
Overrides
TryParse(string, out SemVersion, bool)
Converts the string representation of a semantic version to its SemVersion equivalent and returns a value that indicates whether the conversion succeeded.
Declaration
public static bool TryParse(string version, out SemVersion semver, bool strict = false)
  Parameters
| Type | Name | Description | 
|---|---|---|
| string | version | The version string.  | 
      
| SemVersion | semver | When the method returns, contains a SemVersion instance equivalent to the version string passed in, if the version string was valid, or null if the version string was not valid.  | 
      
| bool | strict | If set to true minor and patch version are required, otherwise they are optional.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | false when a invalid version string is passed, otherwise true.  | 
      
Operators
operator ==(SemVersion, SemVersion)
Compares two semantic versions for equality.
Declaration
public static bool operator ==(SemVersion left, SemVersion right)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | left | The left value.  | 
      
| SemVersion | right | The right value.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | 
operator >(SemVersion, SemVersion)
Compares two semantic versions.
Declaration
public static bool operator >(SemVersion left, SemVersion right)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | left | The left value.  | 
      
| SemVersion | right | The right value.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | 
operator >=(SemVersion, SemVersion)
Compares two semantic versions.
Declaration
public static bool operator >=(SemVersion left, SemVersion right)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | left | The left value.  | 
      
| SemVersion | right | The right value.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | If left is greater than or equal to right true, otherwise false.  | 
      
implicit operator SemVersion(string)
Implicit conversion from string to SemVersion.
Declaration
public static implicit operator SemVersion(string version)
  Parameters
| Type | Name | Description | 
|---|---|---|
| string | version | The semantic version.  | 
      
Returns
| Type | Description | 
|---|---|
| SemVersion | The SemVersion object.  | 
      
Exceptions
| Type | Condition | 
|---|---|
| ArgumentNullException | The   | 
      
| ArgumentException | The version number has an invalid format.  | 
      
| OverflowException | The Major, Minor, or Patch versions are larger than .
 | 
      
operator !=(SemVersion, SemVersion)
Compares two semantic versions for inequality.
Declaration
public static bool operator !=(SemVersion left, SemVersion right)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | left | The left value.  | 
      
| SemVersion | right | The right value.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | 
operator <(SemVersion, SemVersion)
Compares two semantic versions.
Declaration
public static bool operator <(SemVersion left, SemVersion right)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | left | The left value.  | 
      
| SemVersion | right | The right value.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | 
operator <=(SemVersion, SemVersion)
Compares two semantic versions.
Declaration
public static bool operator <=(SemVersion left, SemVersion right)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SemVersion | left | The left value.  | 
      
| SemVersion | right | The right value.  | 
      
Returns
| Type | Description | 
|---|---|
| bool | If left is less than or equal to right true, otherwise false.  |