Version Osztály

Definíció

Egy szerelvény, operációs rendszer vagy közös nyelvi futtatókörnyezet verziószámát jelöli. Ez az osztály nem örökölhető.

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
Öröklődés
Version
Attribútumok
Megvalósítás

Példák

Az alábbi példa az AssemblyVersionAttribute attribútummal rendel egy verziószámot egy szerelvényhez. Fordításkor a rendszer ezeket a verzióinformációkat a szerelvény metaadataival tárolja. Futtatáskor a példa lekéri a Type.Assembly tulajdonság értékét a szerelvényben található típuson, hogy hivatkozzon a végrehajtó szerelvényre, és lekéri a szerelvény verzióadatait a VersionAssemblyName metódus által Assembly.GetName visszaadott objektum tulajdonságából.

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.

Megjegyzések

Az Version osztály egy szerelvény, operációs rendszer vagy közös nyelvi futtatókörnyezet verziószámát jelöli. A verziószámok két-négy összetevőből állnak: fő, alverzió, build és változat. A fő- és alösszetevőkre van szükség; a build- és változatösszetevők nem kötelezőek, de a változatösszetevő definiálása esetén a build összetevőre van szükség. Minden definiált összetevőnek 0-nál nagyobb vagy egyenlő egész számnak kell lennie. A verziószám formátuma a következő (az opcionális összetevők szögletes zárójelben jelennek meg):

.al[.build[.változat]]

Az összetevőket a konvenció az alábbiak szerint használja:

  • Főverzió: Az azonos nevű, de különböző főverziójú összeállítások nem cserélhetők fel. A magasabb verziószám egy termék fő átírását jelezheti, ahol a visszamenőleges kompatibilitás nem feltételezhető.

  • Alverzió: Ha két szerelvény neve és főverziószáma megegyezik, de az alverzió száma eltérő, ez jelentős fejlesztést jelez a visszamenőleges kompatibilitás szándékával. Ez a magasabb alverziószám egy termék pontkiadását vagy egy termék teljesen visszamenőlegesen kompatibilis új verzióját jelezheti.

  • Build: A buildszám különbsége ugyanannak a forrásnak az újrafordítását jelenti. A processzor, a platform vagy a fordító megváltozásakor különböző buildszámokat használhat.

  • Revízió: Azok a szerelvények, amelyeknek azonos a nevük, a fő- és alverziószámuk, de eltérőek a revízióik, teljes mértékben felcserélhetők. Magasabb változatszám használható egy olyan szoftververzióban, amely egy korábban kiadott összeállítás biztonsági lyukát javítja ki.

A csak build- vagy változatszámok alapján eltérő szerelvény későbbi verziói az előző verzió gyorsjavítás-frissítéseinek minősülnek.

Important

A nem explicit módon hozzárendelt tulajdonságok értéke Version nincs definiálva (-1).

MajorRevision A MinorRevision tulajdonságok lehetővé teszik az alkalmazás ideiglenes verziójának azonosítását, amely például kijavít egy problémát, amíg nem tud végleges megoldást kibocsátani. Ezenkívül a Windows NT operációs rendszer a MajorRevision tulajdonság használatával kódolja a szervizcsomag számát.

Verzióinformációk hozzárendelése szerelvényekhez

Általában a Version osztályt nem használják verziószám hozzárendelésére egy szerelvényhez. Ehelyett az AssemblyVersionAttribute osztály egy szerelvény verziójának meghatározására szolgál, ahogyan azt a jelen cikkben szereplő példa szemlélteti.

Verzióadatok lekérése

Version az objektumokat leggyakrabban valamilyen rendszer- vagy alkalmazásösszetevő (például az operációs rendszer), a közös nyelvi futtatókörnyezet, az aktuális alkalmazás végrehajtható példánya vagy egy adott szerelvény verzióadatainak tárolására használják. Az alábbi példák a leggyakoribb forgatókönyveket szemléltetik:

  • Az operációs rendszer verziójának beolvasása. Az alábbi példa a tulajdonságot használja az OperatingSystem.Version operációs rendszer verziószámának lekéréséhez.

    // 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())
    
  • A közös nyelvi futtatókörnyezet verziójának beolvasása. Az alábbi példa a tulajdonság használatával kéri le a Environment.Version közös nyelvi futtatókörnyezet verzióadatait.

    // 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())
    
  • Az aktuális alkalmazás szerelvényverziójának beolvasása. Az alábbi példa egy olyan objektumra mutató hivatkozás Assembly.GetEntryAssembly lekérésére használja a Assembly metódust, amely az alkalmazás végrehajthatóságát jelöli, majd lekéri a szerelvény verziószámát.

    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
    
  • Az aktuális szerelvény verziószámának beolvasása. Az alábbi példa a Type.Assembly tulajdonságot használja annak érdekében, hogy hivatkozást szerezzen egy Assembly objektumra, amely az alkalmazás belépési pontját tartalmazó szerelvényt képviseli, majd lekéri annak verzióinformációit.

    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
    

Verzióobjektumok összehasonlítása

A CompareTo metódussal meghatározhatja, hogy egy Version objektum korábbi-e, ugyanaz-e, mint vagy későbbi-e egy második Version objektumnál. Az alábbi példa azt jelzi, hogy a 2.1-es verzió a 2.0-s verziónál későbbi.

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.

Ahhoz, hogy két verzió egyenlő legyen, az első Version objektum fő-, alverzió-, build- és változatszámának meg kell egyeznie a második Version objektuméval. Ha egy Version objektum build- vagy változatszáma nincs meghatározva, akkor az Version objektum korábbinak minősül, mint egy Version olyan objektum, amelynek build- vagy változatszáma nullával egyenlő. Az alábbi példa ezt három Version , nem definiált verzióösszetevővel rendelkező objektum összehasonlításával szemlélteti.

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

Konstruktorok

Name Description
Version()

Inicializálja a Version osztály új példányát.

Version(Int32, Int32, Int32, Int32)

Inicializálja az osztály új példányát a Version megadott fő-, al-, build- és változatszámokkal.

Version(Int32, Int32, Int32)

Inicializálja az osztály új példányát a Version megadott fő-, al- és buildértékek használatával.

Version(Int32, Int32)

Inicializálja az osztály új példányát a Version megadott fő- és alértékekkel.

Version(String)

Inicializálja az osztály új példányát Version a megadott sztring használatával.

Tulajdonságok

Name Description
Build

Lekéri az aktuális Version objektum verziószámának buildösszetevőjének értékét.

Major

Lekéri az aktuális Version objektum verziószámának fő összetevőjének értékét.

MajorRevision

Lekéri a változatszám 16 bites csúcsát.

Minor

Lekéri az aktuális Version objektum verziószámának alösszetevőjének értékét.

MinorRevision

Lekéri a változatszám alacsony 16 bites részét.

Revision

Lekéri az aktuális Version objektum verziószámának változat összetevőjének értékét.

Metódusok

Name Description
Clone()

Egy új Version objektumot ad vissza, amelynek értéke megegyezik az aktuális Version objektuméval.

CompareTo(Object)

Összehasonlítja az aktuális Version objektumot egy adott objektummal, és visszaadja a relatív értékek jelzését.

CompareTo(Version)

Összehasonlítja az aktuális Version objektumot egy adott Version objektummal, és visszaadja a relatív értékek jelzését.

Equals(Object)

Egy értéket ad vissza, amely jelzi, hogy az aktuális Version objektum egyenlő-e egy adott objektummal.

Equals(Version)

Egy értéket ad vissza, amely jelzi, hogy az aktuális Version objektum és egy megadott Version objektum ugyanazt az értéket képviseli-e.

GetHashCode()

Az aktuális Version objektum kivonatkódját adja vissza.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Parse(ReadOnlySpan<Byte>)

Az UTF-8 karakterek megadott írásvédett tartományát alakítja át, amely a verziószámot egy egyenértékű Verzió objektummá alakítja.

Parse(ReadOnlySpan<Char>)

A megadott írásvédett karaktereket konvertálja, amelyek egy verziószámot jelölnek, egyenértékű Version objektummá.

Parse(String)

Egy verziószám sztringképét egyenértékű Version objektummá alakítja.

ToString()

Az aktuális Version objektum értékét a megfelelő String ábrázolásúvá alakítja.

ToString(Int32)

Az aktuális Version objektum értékét a megfelelő String ábrázolásúvá alakítja. A megadott darabszám a visszaadandó összetevők számát jelzi.

TryFormat(Span<Byte>, Int32, Int32)

A verziópéldányt bájtok közé próbálja formázni.

TryFormat(Span<Byte>, Int32)

A verziópéldányt bájtok közé próbálja formázni.

TryFormat(Span<Char>, Int32, Int32)

Megpróbálja formázni ezt a verziópéldányt karakterská.

TryFormat(Span<Char>, Int32)

Megpróbálja formázni ezt a verziópéldányt karakterská.

TryParse(ReadOnlySpan<Byte>, Version)

Megpróbálja a verziószám UTF-8-ábrázolását egyenértékű Verzió objektummá konvertálni, és visszaad egy értéket, amely jelzi, hogy az átalakítás sikeres volt-e.

TryParse(ReadOnlySpan<Char>, Version)

A megadott írásvédett karaktertartományt a verziószámmal megegyező Version objektummá próbálja konvertálni, és visszaad egy értéket, amely jelzi, hogy az átalakítás sikeres volt-e.

TryParse(String, Version)

Megpróbálja egy verziószám sztringképét egyenértékű Version objektummá konvertálni, és visszaad egy értéket, amely jelzi, hogy az átalakítás sikeres volt-e.

Operátorok

Name Description
Equality(Version, Version)

Meghatározza, hogy két megadott Version objektum egyenlő-e.

GreaterThan(Version, Version)

Meghatározza, hogy az első megadott Version objektum nagyobb-e, mint a második megadott Version objektum.

GreaterThanOrEqual(Version, Version)

Meghatározza, hogy az első megadott Version objektum nagyobb vagy egyenlő-e a második megadott Version objektumnál.

Inequality(Version, Version)

Meghatározza, hogy két megadott Version objektum nem egyenlő-e.

LessThan(Version, Version)

Meghatározza, hogy az első megadott Version objektum kisebb-e, mint a második megadott Version objektum.

LessThanOrEqual(Version, Version)

Meghatározza, hogy az első megadott Version objektum kisebb-e, mint a második Version objektumé.

Explicit interfész-implementációk

Name Description
IComparable.CompareTo(Object)

Összehasonlítja az aktuális Version objektumot egy adott objektummal, és visszaadja a relatív értékek jelzését.

IFormattable.ToString(String, IFormatProvider)

Formázza az aktuális példány értékét a megadott formátummal.

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

Megpróbálja formázni az aktuális példány értékét a megadott karaktertartományba.

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

Az aktuális példány értékét UTF-8 formátumban próbálja formázni a megadott bájttartományba.

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

Egy szerelvény, operációs rendszer vagy közös nyelvi futtatókörnyezet verziószámát jelöli. Ez az osztály nem örökölhető.

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

Egy szerelvény, operációs rendszer vagy közös nyelvi futtatókörnyezet verziószámát jelöli. Ez az osztály nem örökölhető.

A következőre érvényes: