Version Klas

Definitie

Vertegenwoordigt het versienummer van een assembly, besturingssysteem of de algemene taalruntime. Deze klasse kan niet worden overgenomen.

public ref class Version sealed : IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable, IUtf8SpanFormattable, IUtf8SpanParsable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable, IUtf8SpanFormattable
public ref class Version sealed : ICloneable, IComparable
public sealed class Version : IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable, IUtf8SpanFormattable, IUtf8SpanParsable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable, IUtf8SpanFormattable
[System.Serializable]
public sealed class Version : ICloneable, IComparable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
type Version = class
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface IFormattable
    interface ISpanFormattable
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface ISpanFormattable
    interface IFormattable
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface IFormattable
    interface ISpanFormattable
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface IFormattable
    interface ISpanFormattable
    interface IUtf8SpanFormattable
type Version = class
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface ICloneable
[<System.Serializable>]
type Version = class
    interface ICloneable
    interface IComparable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
Public NotInheritable Class Version
Implements IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable, IUtf8SpanFormattable, IUtf8SpanParsable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable, IUtf8SpanFormattable
Public NotInheritable Class Version
Implements ICloneable, IComparable
Overname
Version
Kenmerken
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt het AssemblyVersionAttribute kenmerk gebruikt om een versienummer toe te wijzen aan een assembly. Tijdens het compileren worden deze versiegegevens opgeslagen met de metagegevens van de assembly. Tijdens runtime haalt het voorbeeld de waarde van de Type.Assembly eigenschap op van een type dat in de assembly is gevonden om een verwijzing naar de uitvoerende assembly op te halen en wordt de versie-informatie van de assembly opgehaald uit de Version eigenschap van het AssemblyName object dat door de Assembly.GetName methode wordt geretourneerd.

using System;
using System.Reflection;

[assembly:AssemblyVersionAttribute("2.0.1")]

public class Example1
{
   public static void Main()
   {
      Assembly thisAssem = typeof(Example1).Assembly;
      AssemblyName thisAssemName = thisAssem.GetName();
       
      Version ver = thisAssemName.Version;
       
      Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name);    
   }
}

// The example displays the following output:
//        This is version 2.0.1.0 of Example1.
open System.Reflection

[<assembly: AssemblyVersionAttribute "2.0.1">]
do ()

type Example1 = class end

let thisAssem = typeof<Example1>.Assembly
let thisAssemName = thisAssem.GetName()
   
let ver = thisAssemName.Version
   
printfn $"This is version {ver} of {thisAssemName.Name}."
// The example displays the following output:
//        This is version 2.0.1.0 of Example1.
Imports System.Reflection

<Assembly:AssemblyVersionAttribute("2.0.1")>
Module MExample1
    Public Sub Main()
        Dim thisAssem As Assembly = Assembly.GetExecutingAssembly()
        Dim thisAssemName As AssemblyName = thisAssem.GetName()

        Dim ver As Version = thisAssemName.Version

        Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name)
    End Sub
End Module

' The example displays the following output:
'      This is version 2.0.1.0 of Example1.

Opmerkingen

De Version-klasse vertegenwoordigt het versienummer van een assembly, besturingssysteem of de algemene taalruntime. Versienummers bestaan uit twee tot vier onderdelen: primaire, secundaire versie, build en revisie. De belangrijkste en secundaire onderdelen zijn vereist; de build- en revisieonderdelen zijn optioneel, maar het buildonderdeel is vereist als het revisieonderdeel is gedefinieerd. Alle gedefinieerde onderdelen moeten gehele getallen groter dan of gelijk aan 0 zijn. De notatie van het versienummer is als volgt (optionele onderdelen worden weergegeven tussen vierkante haken):

primaire.secundaire[.build[.revisie]]

De onderdelen worden als volgt gebruikt volgens de conventie:

  • Hoofd: Assemblies met dezelfde naam, maar verschillende hoofdversies zijn niet uitwisselbaar. Een hoger versienummer kan duiden op een belangrijk herschrijven van een product waarbij compatibiliteit met eerdere versies niet kan worden aangenomen.

  • secundaire: als de naam en het primaire versienummer op twee assembly's hetzelfde zijn, maar het secundaire versienummer verschilt, betekent dit een aanzienlijke verbetering met de bedoeling van compatibiliteit met eerdere versies. Dit hogere secundaire versienummer kan duiden op een puntrelease van een product of een volledig achterwaarts compatibele nieuwe versie van een product.

  • Build: een verschil in buildnummer vertegenwoordigt een hercompilatie van dezelfde bron. Er kunnen verschillende buildnummers worden gebruikt wanneer de processor, het platform of de compiler wordt gewijzigd.

  • Revisie: Assemblies met dezelfde naam, hoofd- en onderversienummers, maar verschillende revisies, zijn bedoeld volledig uitwisselbaar te zijn. Een hoger revisienummer kan worden gebruikt in een build waarmee een beveiligingsgat in een eerder uitgebrachte assembly wordt opgelost.

Volgende versies van een assembly die alleen verschillen per build- of revisienummers, worden beschouwd als hotfix-updates van de vorige versie.

Important

De waarde van Version eigenschappen waaraan geen expliciete waarde is toegewezen, is niet gedefinieerd (-1).

Met de eigenschappen MajorRevision en MinorRevision kunt u een tijdelijke versie van uw toepassing identificeren waarmee u bijvoorbeeld een probleem kunt oplossen totdat u een permanente oplossing kunt vrijgeven. Bovendien gebruikt het Windows NT-besturingssysteem de eigenschap MajorRevision om het servicepacknummer te coderen.

Versiegegevens toekennen aan assemblies

Normaal gesproken wordt de Version-klasse niet gebruikt om een versienummer toe te wijzen aan een assembly. In plaats daarvan wordt de klasse AssemblyVersionAttribute gebruikt om de versie van een assembly te definiëren, zoals wordt geïllustreerd in het voorbeeld in dit artikel.

Versiegegevens ophalen

Version objecten worden meestal gebruikt voor het opslaan van versie-informatie over een bepaald systeem of toepassingsonderdeel (zoals het besturingssysteem), de algemene taalruntime, het uitvoerbare bestand van de huidige toepassing of een bepaalde assembly. In de volgende voorbeelden ziet u enkele van de meest voorkomende scenario's:

  • De versie van het besturingssysteem ophalen. In het volgende voorbeeld wordt de eigenschap OperatingSystem.Version gebruikt om het versienummer van het besturingssysteem op te halen.

    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = os.Version;
    Console.WriteLine($"Operating System: {os.VersionString} ({ver})");
    
    // Get the operating system version.
    let os = Environment.OSVersion
    let ver = os.Version
    printfn $"Operating System: {os.VersionString} ({ver})"
    
    ' Get the operating system version.
    Dim os As OperatingSystem = Environment.OSVersion
    Dim ver As Version = os.Version
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString())
    
  • De versie van de algemene taalruntime ophalen. In het volgende voorbeeld wordt de eigenschap Environment.Version gebruikt om versie-informatie over de algemene taalruntime op te halen.

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine($"CLR Version {ver}");
    
    // Get the common language runtime version.
    let ver = Environment.Version
    printfn $"CLR Version {ver}"
    
    ' Get the common language runtime version.
    Dim ver As Version = Environment.Version
    Console.WriteLine("CLR Version {0}", ver.ToString())
    
  • De assemblyversie van de huidige toepassing ophalen. In het volgende voorbeeld wordt de methode Assembly.GetEntryAssembly gebruikt om een verwijzing te verkrijgen naar een Assembly-object dat het uitvoerbare bestand van de toepassing vertegenwoordigt en vervolgens het versienummer van de assembly ophaalt.

    using System;
    using System.Reflection;
    
    public class Example4
    {
       public static void Main()
       {
          // Get the version of the executing assembly (that is, this assembly).
          Assembly assem = Assembly.GetEntryAssembly();
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    open System.Reflection
    
    // Get the version of the executing assembly (that is, this assembly).
    let assem = Assembly.GetEntryAssembly()
    let assemName = assem.GetName()
    let ver = assemName.Version
    printfn $"Application {assemName.Name}, Version {ver}"
    
    Imports System.Reflection
    
    Module Example3
        Public Sub Main()
            ' Get the version of the executing assembly (that is, this assembly).
            Dim assem As Assembly = Assembly.GetEntryAssembly()
            Dim assemName As AssemblyName = assem.GetName()
            Dim ver As Version = assemName.Version
            Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString())
        End Sub
    End Module
    
  • De assemblyversie van de huidige assembly ophalen. In het volgende voorbeeld wordt de eigenschap Type.Assembly gebruikt om een verwijzing te verkrijgen naar een Assembly-object dat de assembly vertegenwoordigt die het toepassingsinvoerpunt bevat en vervolgens de versie-informatie ophaalt.

    using System;
    using System.Reflection;
    
    public class Example3
    {
       public static void Main()
       {
          // Get the version of the current assembly.
          Assembly assem = typeof(Example3).Assembly;
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    type Example = class end
    
    // Get the version of the current assembly.
    let assem = typeof<Example>.Assembly
    let assemName = assem.GetName()
    let ver = assemName.Version
    printfn $"{assemName.Name}, Version {ver}"
    
    Imports System.Reflection
    
    Module Example1
        Public Sub Main()
            ' Get the version of the current assembly.
            Dim assem As Assembly = Assembly.GetExecutingAssembly()
            Dim assemName As AssemblyName = assem.GetName()
            Dim ver As Version = assemName.Version
            Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())
        End Sub
    End Module
    

Versieobjecten vergelijken

U kunt de methode CompareTo gebruiken om te bepalen of een Version object eerder is dan, hetzelfde als of later dan een tweede Version-object. In het volgende voorbeeld wordt aangegeven dat versie 2.1 nieuwer is dan versie 2.0.

Version v1 = new(2, 0);
Version v2 = new("2.1");
Console.Write("Version {0} is ", v1);
switch(v1.CompareTo(v2))
{
   case 0:
      Console.Write("the same as");
      break;
   case 1:
      Console.Write("later than");
      break;
   case -1:
      Console.Write("earlier than");
      break;
}
Console.WriteLine($" Version {v2}.");

// The example displays the following output:
//       Version 2.0 is earlier than Version 2.1.
open System

let v1 = Version(2, 0)
let v2 = Version "2.1"

printf $"Version {v1} is "

match v1.CompareTo v2 with
| 0 -> printf "the same as"
| 1 -> printf "later than"
| _ -> printf "earlier than"

printf $" Version {v2}."
// The example displays the following output:
//       Version 2.0 is earlier than Version 2.1.
Dim v1 As New Version(2,0)
Dim v2 As New Version("2.1")
Console.Write("Version {0} is ", v1)
Select Case v1.CompareTo(v2)
   Case 0
      Console.Write("the same as")
   Case 1
      Console.Write("later than")
   Case -1
      Console.Write("earlier than")
End Select
Console.WriteLine(" Version {0}.", v2)                  
' The example displays the following output:
'       Version 2.0 is earlier than Version 2.1.

Opdat twee versies gelijk zijn, moeten de primaire, secundaire, build- en revisienummers van het eerste Version-object identiek zijn aan die van het tweede Version-object. Als het build- of revisienummer van een Version-object niet is gedefinieerd, wordt dat Version object beschouwd als eerder dan een Version object waarvan het build- of revisienummer gelijk is aan nul. In het volgende voorbeeld ziet u dit door drie Version objecten te vergelijken met niet-gedefinieerde versieonderdelen.

using System;

enum VersionTime {Earlier = -1, Same = 0, Later = 1 };

public class Example2
{
   public static void Main()
   {
      Version v1 = new(1, 1);
      Version v1a = new("1.1.0");
      ShowRelationship(v1, v1a);
      
      Version v1b = new(1, 1, 0, 0);
      ShowRelationship(v1b, v1a);
   }

   private static void ShowRelationship(Version v1, Version v2)
   {
      Console.WriteLine($"Relationship of {v1} to {v2}: {(VersionTime) v1.CompareTo(v2)}");       
   }
}

// The example displays the following output:
//       Relationship of 1.1 to 1.1.0: Earlier
//       Relationship of 1.1.0.0 to 1.1.0: Later
open System

type VersionTime =
    | Earlier = -1
    | Same = 0
    | Later = 1

let showRelationship (v1: Version) (v2: Version) =
    printfn $"Relationship of {v1} to {v2}: {v1.CompareTo v2 |> enum<VersionTime>}" 

let v1 = Version(1, 1)
let v1a = Version "1.1.0"
showRelationship v1 v1a

let v1b = Version(1, 1, 0, 0)
showRelationship v1b v1a

// The example displays the following output:
//       Relationship of 1.1 to 1.1.0: Earlier
//       Relationship of 1.1.0.0 to 1.1.0: Later
Public Enum VersionTime
   Earlier = -1
   Same = 0
   Later = 1
End Enum

Module Example2
    Public Sub Main()
        Dim v1 As New Version(1, 1)
        Dim v1a As New Version("1.1.0")
        ShowRelationship(v1, v1a)

        Dim v1b As New Version(1, 1, 0, 0)
        ShowRelationship(v1b, v1a)
    End Sub

    Private Sub ShowRelationship(v1 As Version, v2 As Version)
        Console.WriteLine("Relationship of {0} to {1}: {2}",
                        v1, v2, CType(v1.CompareTo(v2), VersionTime))
    End Sub
End Module
' The example displays the following output:
'       Relationship of 1.1 to 1.1.0: Earlier
'       Relationship of 1.1.0.0 to 1.1.0: Later

Constructors

Name Description
Version()

Initialiseert een nieuw exemplaar van de Version klasse.

Version(Int32, Int32, Int32, Int32)

Initialiseert een nieuw exemplaar van de Version klasse met de opgegeven primaire, secundaire, build- en revisienummers.

Version(Int32, Int32, Int32)

Initialiseert een nieuw exemplaar van de Version klasse met behulp van de opgegeven primaire, secundaire en buildwaarden.

Version(Int32, Int32)

Initialiseert een nieuw exemplaar van de Version klasse met behulp van de opgegeven primaire en secundaire waarden.

Version(String)

Initialiseert een nieuw exemplaar van de Version klasse met behulp van de opgegeven tekenreeks.

Eigenschappen

Name Description
Build

Hiermee haalt u de waarde op van het buildonderdeel van het versienummer voor het huidige Version object.

Major

Hiermee haalt u de waarde op van het primaire onderdeel van het versienummer voor het huidige Version object.

MajorRevision

Hiermee haalt u de hoge 16 bits van het revisienummer op.

Minor

Hiermee haalt u de waarde op van het secundaire onderdeel van het versienummer voor het huidige Version object.

MinorRevision

Hiermee haalt u de lage 16 bits van het revisienummer op.

Revision

Hiermee haalt u de waarde op van het revisieonderdeel van het versienummer voor het huidige Version object.

Methoden

Name Description
Clone()

Retourneert een nieuw Version object waarvan de waarde hetzelfde is als het huidige Version object.

CompareTo(Object)

Vergelijkt het huidige Version object met een opgegeven object en retourneert een indicatie van de relatieve waarden.

CompareTo(Version)

Vergelijkt het huidige Version object met een opgegeven Version object en retourneert een indicatie van de relatieve waarden.

Equals(Object)

Retourneert een waarde die aangeeft of het huidige Version object gelijk is aan een opgegeven object.

Equals(Version)

Retourneert een waarde die aangeeft of het huidige Version object en een opgegeven Version object dezelfde waarde vertegenwoordigen.

GetHashCode()

Retourneert een hash-code voor het huidige Version object.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Parse(ReadOnlySpan<Byte>)

Converteert de opgegeven alleen-lezen periode van UTF-8 tekens die een versienummer vertegenwoordigen naar een equivalent versieobject.

Parse(ReadOnlySpan<Char>)

Converteert de opgegeven alleen-lezen periode met tekens die een versienummer vertegenwoordigen naar een gelijkwaardig Version object.

Parse(String)

Converteert de tekenreeksweergave van een versienummer naar een equivalent Version object.

ToString()

Converteert de waarde van het huidige Version object naar de equivalente String weergave.

ToString(Int32)

Converteert de waarde van het huidige Version object naar de equivalente String weergave. Een opgegeven telling geeft het aantal onderdelen aan dat moet worden geretourneerd.

TryFormat(Span<Byte>, Int32, Int32)

Probeert dit versie-exemplaar op te maken in een bereik van bytes.

TryFormat(Span<Byte>, Int32)

Probeert dit versie-exemplaar op te maken in een bereik van bytes.

TryFormat(Span<Char>, Int32, Int32)

Probeert dit versie-exemplaar in een reeks tekens op te maken.

TryFormat(Span<Char>, Int32)

Probeert dit versie-exemplaar in een reeks tekens op te maken.

TryParse(ReadOnlySpan<Byte>, Version)

Probeert de UTF-8-weergave van een versienummer te converteren naar een equivalent versieobject en retourneert een waarde die aangeeft of de conversie is geslaagd.

TryParse(ReadOnlySpan<Char>, Version)

Hiermee wordt geprobeerd de opgegeven alleen-lezen periode met tekens te converteren die een versienummer vertegenwoordigen naar een equivalent Version object en wordt een waarde geretourneerd die aangeeft of de conversie is geslaagd.

TryParse(String, Version)

Probeert de tekenreeksweergave van een versienummer te converteren naar een equivalent Version object en retourneert een waarde die aangeeft of de conversie is geslaagd.

Operators

Name Description
Equality(Version, Version)

Bepaalt of twee opgegeven Version objecten gelijk zijn.

GreaterThan(Version, Version)

Bepaalt of het eerste opgegeven Version object groter is dan het tweede opgegeven Version object.

GreaterThanOrEqual(Version, Version)

Bepaalt of het eerste opgegeven Version object groter is dan of gelijk is aan het tweede opgegeven Version object.

Inequality(Version, Version)

Bepaalt of twee opgegeven Version objecten niet gelijk zijn.

LessThan(Version, Version)

Bepaalt of het eerste opgegeven Version object kleiner is dan het tweede opgegeven Version object.

LessThanOrEqual(Version, Version)

Bepaalt of het eerste opgegeven Version object kleiner is dan of gelijk is aan het tweede Version object.

Expliciete interface-implementaties

Name Description
IComparable.CompareTo(Object)

Vergelijkt het huidige Version object met een opgegeven object en retourneert een indicatie van de relatieve waarden.

IFormattable.ToString(String, IFormatProvider)

Hiermee wordt de waarde van het huidige exemplaar opgemaakt met behulp van de opgegeven indeling.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Probeert de waarde van het huidige exemplaar op te maken in de opgegeven reeks tekens.

IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Probeert de waarde van het huidige exemplaar op te maken als UTF-8 in het opgegeven bereik van bytes.

IUtf8SpanParsable<Version>.Parse(ReadOnlySpan<Byte>, IFormatProvider)

Vertegenwoordigt het versienummer van een assembly, besturingssysteem of de algemene taalruntime. Deze klasse kan niet worden overgenomen.

IUtf8SpanParsable<Version>.TryParse(ReadOnlySpan<Byte>, IFormatProvider, Version)

Vertegenwoordigt het versienummer van een assembly, besturingssysteem of de algemene taalruntime. Deze klasse kan niet worden overgenomen.

Van toepassing op