Version Sınıf

Tanım

Derlemenin, işletim sisteminin veya ortak dil çalışma zamanının sürüm numarasını temsil eder. Bu sınıf devralınamaz.

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
Devralma
Version
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, derlemeye AssemblyVersionAttribute sürüm numarası atamak için özniteliğini kullanır. Derleme zamanında, bu sürüm bilgileri derlemenin meta verileriyle birlikte depolanır. Çalışma zamanında, örnek, yürütme derlemesine Type.Assembly başvuru almak için derlemede bulunan bir türdeki özelliğinin değerini alır ve yöntemi tarafından Version döndürülen nesnenin özelliğinden AssemblyName derlemenin Assembly.GetName sürüm bilgilerini alır.

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.

Açıklamalar

Version sınıfı bir derlemenin, işletim sisteminin veya ortak dil çalışma zamanının sürüm numarasını temsil eder. Sürüm numaraları iki-dört bileşenden oluşur: birincil, ikincil, derleme ve düzeltme. Ana ve ikincil bileşenler gereklidir; derleme ve düzeltme bileşenleri isteğe bağlıdır, ancak düzeltme bileşeni tanımlanmışsa derleme bileşeni gereklidir. Tüm tanımlı bileşenler 0'dan büyük veya buna eşit tamsayılar olmalıdır. Sürüm numarasının biçimi aşağıdaki gibidir (isteğe bağlı bileşenler köşeli ayraç içinde gösterilir):

ana sürüm.alt sürüm[.yapı[.revizyon]]

Bileşenler konvansiyona göre aşağıdaki gibi kullanılır:

  • Başlıca: Aynı ada sahip ancak farklı başlıca sürümlere sahip derlemeler birbirinin yerine kullanılamaz. Daha yüksek bir sürüm numarası, geriye dönük uyumluluğun varsayılamadığı bir ürünün büyük bir yeniden yazıldığını gösterebilir.

  • İkincil: İki derlemedeki ad ve ana sürüm numarası aynıysa, ancak ikincil sürüm numarası farklıysa, bu geriye dönük uyumluluk amacıyla önemli bir geliştirme olduğunu gösterir. Bu daha yüksek ikincil sürüm numarası, ürünün bir nokta sürümünü veya ürünün geriye dönük uyumlu yeni bir sürümünü gösterebilir.

  • Derleme: Derleme numarasındaki fark, aynı kaynağın yeniden derlemesidir. İşlemci, platform veya derleyici değiştiğinde farklı derleme numaraları kullanılabilir.

  • Düzeltme: Aynı ad, ana ve ikincil sürüm numaralarına sahip derlemeler, ancak farklı düzeltmelerin tamamen değiştirilebilir olması amaçlanmıştır. Daha önce yayımlanan derlemedeki bir güvenlik deliğini düzelten bir derlemede daha yüksek bir düzeltme numarası kullanılabilir.

Derlemenin yalnızca derleme veya düzeltme numaralarına göre farklılık gösteren sonraki sürümleri, önceki sürümün Düzeltme güncelleştirmeleri olarak kabul edilir.

Important

Açıkça bir değer atanmamış özelliklerin Version değeri tanımsız (-1).

MajorRevision ve MinorRevision özellikleri, uygulamanızın geçici bir sürümünü tanımlamanıza olanak tanır; örneğin, kalıcı bir çözüm serbest bırakana kadar bir sorunu düzeltebilir. Ayrıca, Windows NT işletim sistemi hizmet paketi numarasını kodlamak için özelliğini kullanır MajorRevision .

Derlemelere sürüm bilgileri atama

Normalde, Version sınıf bir derlemeye sürüm numarası atamak için kullanılmaz. Bunun yerine sınıfı, AssemblyVersionAttribute bu makaledeki örnekte gösterildiği gibi bir derlemenin sürümünü tanımlamak için kullanılır.

Sürüm bilgilerini alma

Version nesneleri en sık bazı sistem veya uygulama bileşeni (işletim sistemi gibi), ortak dil çalışma zamanı, geçerli uygulamanın yürütülebilir dosyası veya belirli bir derleme hakkındaki sürüm bilgilerini depolamak için kullanılır. Aşağıdaki örneklerde en yaygın senaryolardan bazıları gösterilmektedir:

  • İşletim sistemi sürümü alınıyor. Aşağıdaki örnek, işletim sisteminin sürüm numarasını almak için özelliğini kullanır OperatingSystem.Version .

    // 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())
    
  • Ortak dil çalışma zamanının sürümü alınıyor. Aşağıdaki örnek, ortak dil çalışma zamanı hakkında sürüm bilgilerini almak için özelliğini kullanır Environment.Version .

    // 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())
    
  • Geçerli uygulamanın derleme sürümü alınıyor. Aşağıdaki örnek, uygulama yürütülebilir dosyasını temsil eden bir Assembly.GetEntryAssembly nesnesine başvuru almak için Assembly yöntemini kullanır ve ardından onun derleme sürüm numarasını alır.

    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
    
  • Mevcut derlemenin sürümü alınıyor. Aşağıdaki örnek, Type.Assembly özelliğini kullanarak uygulama giriş noktasını içeren derlemeyi temsil eden bir Assembly nesneye başvuru alır ve ardından sürüm bilgilerini alır.

    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
    

Sürüm nesnelerini karşılaştırma

Bir CompareTo nesnenin Version ikinci Version bir nesneden önceki, aynı veya sonraki bir nesne olup olmadığını belirlemek için yöntemini kullanabilirsiniz. Aşağıdaki örnek, Sürüm 2.1'in Sürüm 2.0'dan sonra olduğunu gösterir.

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.

İki sürümün eşit olması için, ilk Version nesnenin birincil, ikincil, derleme ve düzeltme numaralarının ikinci Version nesneninkilerle aynı olması gerekir. Bir Version nesnenin derleme veya düzeltme numarası tanımlanmamışsa, bu Version nesne, derleme veya düzeltme numarası sıfıra eşit olan bir Version nesneden daha eski olarak kabul edilir. Aşağıdaki örnek, tanımlanmamış sürüm bileşenlerine sahip üç Version nesneyi karşılaştırarak bunu gösterir.

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

Oluşturucular

Name Description
Version()

Version sınıfının yeni bir örneğini başlatır.

Version(Int32, Int32, Int32, Int32)

Sınıfın Version yeni bir örneğini belirtilen birincil, ikincil, derleme ve düzeltme numaralarıyla başlatır.

Version(Int32, Int32, Int32)

Belirtilen birincil, ikincil ve derleme değerlerini kullanarak sınıfın yeni bir örneğini Version başlatır.

Version(Int32, Int32)

Belirtilen birincil ve ikincil değerleri kullanarak sınıfın yeni bir örneğini Version başlatır.

Version(String)

Belirtilen dizeyi Version kullanarak sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
Build

Geçerli Version nesnenin sürüm numarasının derleme bileşeninin değerini alır.

Major

Geçerli Version nesnenin sürüm numarasının ana bileşeninin değerini alır.

MajorRevision

Düzeltme numarasının en yüksek 16 bitini alır.

Minor

Geçerli Version nesnenin sürüm numarasının ikincil bileşeninin değerini alır.

MinorRevision

Düzeltme numarasının düşük 16 bitini alır.

Revision

Geçerli Version nesnenin sürüm numarasının düzeltme bileşeninin değerini alır.

Yöntemler

Name Description
Clone()

Değeri geçerli Version nesneyle aynı olan yeni Version bir nesne döndürür.

CompareTo(Object)

Geçerli Version nesneyi belirtilen bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür.

CompareTo(Version)

Geçerli Version nesneyi belirtilen Version bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür.

Equals(Object)

Geçerli Version nesnenin belirtilen bir nesneye eşit olup olmadığını belirten bir değer döndürür.

Equals(Version)

Geçerli Version nesnenin ve belirtilen Version bir nesnenin aynı değeri temsil edip etmediğini belirten bir değer döndürür.

GetHashCode()

Geçerli Version nesne için bir karma kodu döndürür.

GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
Parse(ReadOnlySpan<Byte>)

Sürüm numarasını temsil eden UTF-8 karakterlerinin belirtilen salt okunur aralığını eşdeğer bir Sürüm nesnesine dönüştürür.

Parse(ReadOnlySpan<Char>)

Sürüm numarasını temsil eden karakterlerin belirtilen salt okunur aralığını eşdeğer Version bir nesneye dönüştürür.

Parse(String)

Sürüm numarasının dize gösterimini eşdeğer Version bir nesneye dönüştürür.

ToString()

Geçerli Version nesnenin değerini eşdeğer String gösterimine dönüştürür.

ToString(Int32)

Geçerli Version nesnenin değerini eşdeğer String gösterimine dönüştürür. Belirtilen sayı, döndürülecek bileşen sayısını gösterir.

TryFormat(Span<Byte>, Int32, Int32)

Bu sürüm örneğini bayt aralığına biçimlendirmeye çalışır.

TryFormat(Span<Byte>, Int32)

Bu sürüm örneğini bayt aralığına biçimlendirmeye çalışır.

TryFormat(Span<Char>, Int32, Int32)

Bu sürüm örneğini bir karakter aralığına biçimlendirmeye çalışır.

TryFormat(Span<Char>, Int32)

Bu sürüm örneğini bir karakter aralığına biçimlendirmeye çalışır.

TryParse(ReadOnlySpan<Byte>, Version)

Sürüm numarasının UTF-8 gösterimini eşdeğer bir Version nesnesine dönüştürmeye çalışır ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.

TryParse(ReadOnlySpan<Char>, Version)

Sürüm numarasını temsil eden karakterlerin belirtilen salt okunur aralığını eşdeğer Version bir nesneye dönüştürmeye çalışır ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.

TryParse(String, Version)

Sürüm numarasının dize gösterimini eşdeğer Version bir nesneye dönüştürmeye çalışır ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.

İşleçler

Name Description
Equality(Version, Version)

Belirtilen Version iki nesnenin eşit olup olmadığını belirler.

GreaterThan(Version, Version)

İlk belirtilen nesnenin, belirtilen Version ikinci Version nesneden büyük olup olmadığını belirler.

GreaterThanOrEqual(Version, Version)

İlk belirtilen nesnenin, belirtilen Version ikinci Version nesneden büyük veya buna eşit olup olmadığını belirler.

Inequality(Version, Version)

Belirtilen Version iki nesnenin eşit olup olmadığını belirler.

LessThan(Version, Version)

İlk belirtilen nesnenin, belirtilen Version ikinci Version nesneden küçük olup olmadığını belirler.

LessThanOrEqual(Version, Version)

Belirtilen Version ilk nesnenin ikinci Version nesneden küçük veya buna eşit olup olmadığını belirler.

Belirtik Arabirim Kullanımları

Name Description
IComparable.CompareTo(Object)

Geçerli Version nesneyi belirtilen bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür.

IFormattable.ToString(String, IFormatProvider)

Belirtilen biçimi kullanarak geçerli örneğin değerini biçimlendirin.

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

Geçerli örneğin değerini sağlanan karakter aralığına biçimlendirmeye çalışır.

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

Geçerli örneğin değerini UTF-8 olarak sağlanan bayt aralığına biçimlendirmeye çalışır.

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

Derlemenin, işletim sisteminin veya ortak dil çalışma zamanının sürüm numarasını temsil eder. Bu sınıf devralınamaz.

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

Derlemenin, işletim sisteminin veya ortak dil çalışma zamanının sürüm numarasını temsil eder. Bu sınıf devralınamaz.

Şunlara uygulanır