/// <summary> /// Returns a semantic version string. /// </summary> /// <returns> /// A string that represents the current object. /// </returns> public override string ToString() { Contract.Ensures(Contract.Result <string>() != null); var builder = new StringBuilder(); builder.Append($"{MajorVersion}.{MinorVersion}.{PatchVersion}"); if (PrereleaseVersion.Any()) { builder.Append($"-{PrereleaseVersion.Single()}"); } if (BuildVersion.Any()) { builder.Append($"+{BuildVersion.Single()}"); } return(builder.ToString()); }