Version Kelas

Definisi

Mewakili nomor versi rakitan, sistem operasi, atau runtime bahasa umum. Kelas ini tidak dapat diwariskan.

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
Warisan
Version
Atribut
Penerapan

Contoh

Contoh berikut menggunakan AssemblyVersionAttribute atribut untuk menetapkan nomor versi ke assembly. Pada waktu kompilasi, informasi versi ini disimpan dengan metadata perakitan. Pada waktu proses, contoh mengambil nilai Type.Assembly properti pada jenis yang ditemukan di rakitan untuk mendapatkan referensi ke rakitan yang dieksekusi, dan mengambil informasi versi perakitan dari Version properti objek yang AssemblyName dikembalikan oleh Assembly.GetName metode .

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.

Keterangan

Kelas Version mewakili nomor versi assembly, sistem operasi, atau Common Language Runtime. Nomor versi terdiri dari dua hingga empat komponen: utama, minor, build, dan revisi. Komponen utama dan minor diperlukan; komponen build dan revisi bersifat opsional, tetapi komponen build diperlukan jika komponen revisi ditentukan. Semua komponen yang ditentukan harus berupa bilangan bulat yang lebih besar dari atau sama dengan 0. Format nomor versi adalah sebagai berikut (komponen opsional ditampilkan dalam tanda kurung siku):

utama. minor[.build[.revisi]]

Komponen digunakan dalam konvensi sebagai berikut:

  • Mayor: Rakitan dengan nama yang sama tetapi versi utama yang berbeda tidak dapat dipertukarkan. Nomor versi yang lebih tinggi mungkin menunjukkan penulisan ulang utama produk di mana kompatibilitas mundur tidak dapat diasumsikan.

  • Minor: Jika nama dan nomor versi utama pada dua rakitan perangkat lunak sama, tetapi nomor versi minor berbeda, ini menunjukkan adanya peningkatan yang signifikan dengan tujuan menjaga kompatibilitas mundur. Nomor versi minor yang lebih tinggi ini mungkin menunjukkan rilis pembaruan kecil dari produk atau versi baru dari produk yang sepenuhnya kompatibel dengan versi sebelumnya.

  • Build: Perbedaan dalam nomor build mewakili kompilasi ulang dari sumber yang sama. Nomor build yang berbeda dapat digunakan saat prosesor, platform, atau kompilator berubah.

  • Revisi: Rakitan dengan nama, nomor versi utama dan minor yang sama tetapi revisi yang berbeda dimaksudkan agar sepenuhnya dapat dipertukarkan. Nomor revisi yang lebih tinggi dapat digunakan dalam build yang memperbaiki lubang keamanan di rakitan yang dirilis sebelumnya.

Versi rakitan selanjutnya yang hanya berbeda pada nomor build atau revisi dianggap sebagai pembaruan hotfix dari versi sebelumnya.

Important

Nilai Version properti yang belum secara eksplisit diberi nilai, tidak terdefinisi (-1).

Properti MajorRevision dan MinorRevision memungkinkan Anda mengidentifikasi versi sementara aplikasi Anda yang, misalnya, memperbaiki masalah hingga Anda dapat merilis solusi permanen. Selain itu, sistem operasi Windows NT menggunakan MajorRevision properti untuk mengodekan nomor paket layanan.

Menetapkan informasi versi ke rakitan

Biasanya, kelas Version tidak digunakan untuk menetapkan nomor versi pada rakitan. Sebaliknya, AssemblyVersionAttribute kelas digunakan untuk menentukan versi assembly, seperti yang diilustrasikan oleh contoh dalam artikel ini.

Mendapatkan informasi versi

Version objek paling sering digunakan untuk menyimpan informasi versi tentang beberapa sistem atau komponen aplikasi (seperti sistem operasi), runtime bahasa umum .NET, file eksekusi aplikasi yang sedang berjalan, atau assembly tertentu. Contoh berikut mengilustrasikan beberapa skenario yang paling umum:

  • Sedang mengambil versi sistem operasi. Contoh berikut menggunakan OperatingSystem.Version properti untuk mengambil nomor versi sistem operasi.

    // 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())
    
  • Mengambil versi Common Language Runtime (CLR). Contoh berikut menggunakan properti Environment.Version untuk mengambil informasi versi terkait Common Language Runtime.

    // 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())
    
  • Mengambil versi assembly aplikasi saat ini. Contoh berikut menggunakan Assembly.GetEntryAssembly metode untuk mendapatkan referensi ke Assembly objek yang mewakili aplikasi yang dapat dieksekusi lalu mengambil nomor versi rakitannya.

    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
    
  • Mengambil versi assembly saat ini. Contoh berikut menggunakan properti Type.Assembly untuk mendapatkan referensi ke objek Assembly yang mewakili assembly yang berfungsi sebagai tempat titik entri aplikasi berada, dan kemudian mengambil informasi versinya.

    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
    

Membandingkan objek versi

Anda dapat menggunakan CompareTo metode untuk menentukan apakah satu Version objek lebih awal dari, sama seperti, atau lebih baru dari objek kedua Version . Contoh berikut menunjukkan bahwa Versi 2.1 lebih baru dari Versi 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.

Agar dua versi dianggap sama, nomor utama, minor, build, dan revisi dari objek pertama Version harus identik dengan dari objek kedua Version. Jika nomor Version build atau revisi objek tidak ditentukan, Version objek tersebut dianggap lebih awal dari Version objek yang nomor build atau revisinya sama dengan nol. Contoh berikut mengilustrasikan ini dengan membandingkan tiga Version objek yang memiliki komponen versi yang tidak ditentukan.

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

Konstruktor

Nama Deskripsi
Version()

Menginisialisasi instans baru dari kelas Version.

Version(Int32, Int32, Int32, Int32)

Menginisialisasi instans Version baru kelas dengan nomor utama, minor, build, dan revisi yang ditentukan.

Version(Int32, Int32, Int32)

Menginisialisasi instans Version baru kelas menggunakan nilai utama, minor, dan build yang ditentukan.

Version(Int32, Int32)

Menginisialisasi instans Version baru kelas menggunakan nilai utama dan minor yang ditentukan.

Version(String)

Menginisialisasi instans Version baru kelas menggunakan string yang ditentukan.

Properti

Nama Deskripsi
Build

Mendapatkan nilai komponen build dari nomor versi untuk objek saat ini Version .

Major

Mendapatkan nilai komponen utama nomor versi untuk objek saat ini Version .

MajorRevision

Mendapatkan 16 bit tinggi dari nomor revisi.

Minor

Mendapatkan nilai komponen minor dari nomor versi untuk objek saat ini Version .

MinorRevision

Mendapatkan 16 bit rendah dari nomor revisi.

Revision

Mendapatkan nilai komponen revisi nomor versi untuk objek saat ini Version .

Metode

Nama Deskripsi
Clone()

Mengembalikan objek baru Version yang nilainya sama dengan objek saat ini Version .

CompareTo(Object)

Membandingkan objek saat ini Version dengan objek tertentu dan mengembalikan indikasi nilai relatifnya.

CompareTo(Version)

Membandingkan objek saat ini Version dengan objek tertentu Version dan mengembalikan indikasi nilai relatifnya.

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah objek saat ini Version sama dengan objek tertentu.

Equals(Version)

Mengembalikan nilai yang menunjukkan apakah objek saat ini Version dan objek tertentu Version mewakili nilai yang sama.

GetHashCode()

Mengembalikan kode hash untuk objek saat ini Version .

GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Parse(ReadOnlySpan<Byte>)

Mengonversi rentang baca-saja yang ditentukan dari karakter UTF-8 yang mewakili nomor versi ke objek Versi yang setara.

Parse(ReadOnlySpan<Char>)

Mengonversi rentang karakter baca-saja yang ditentukan yang mewakili nomor versi menjadi objek yang setara Version .

Parse(String)

Mengonversi representasi string dari nomor versi menjadi objek yang setara Version .

ToString()

Mengonversi nilai objek saat ini Version ke representasi yang setara String .

ToString(Int32)

Mengonversi nilai objek saat ini Version ke representasi yang setara String . Jumlah yang ditentukan menunjukkan jumlah komponen yang akan dikembalikan.

TryFormat(Span<Byte>, Int32, Int32)

Mencoba memformat instans versi ini ke dalam rentang byte.

TryFormat(Span<Byte>, Int32)

Mencoba memformat instans versi ini ke dalam rentang byte.

TryFormat(Span<Char>, Int32, Int32)

Mencoba memformat instans versi ini ke dalam rentang karakter.

TryFormat(Span<Char>, Int32)

Mencoba memformat instans versi ini ke dalam rentang karakter.

TryParse(ReadOnlySpan<Byte>, Version)

Mencoba mengonversi representasi UTF-8 dari nomor versi menjadi objek Versi yang setara, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParse(ReadOnlySpan<Char>, Version)

Mencoba mengonversi rentang karakter baca-saja yang ditentukan yang mewakili nomor versi ke objek yang setara Version , dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParse(String, Version)

Mencoba mengonversi representasi string dari nomor versi menjadi objek yang setara Version , dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

Operator

Nama Deskripsi
Equality(Version, Version)

Menentukan apakah dua objek yang ditentukan Version sama.

GreaterThan(Version, Version)

Menentukan apakah objek pertama yang ditentukan Version lebih besar dari objek kedua yang ditentukan Version .

GreaterThanOrEqual(Version, Version)

Menentukan apakah objek pertama yang ditentukan Version lebih besar dari atau sama dengan objek kedua yang ditentukan Version .

Inequality(Version, Version)

Menentukan apakah dua objek yang ditentukan Version tidak sama.

LessThan(Version, Version)

Menentukan apakah objek pertama yang ditentukan Version kurang dari objek kedua yang ditentukan Version .

LessThanOrEqual(Version, Version)

Menentukan apakah objek pertama yang ditentukan Version kurang dari atau sama dengan objek kedua Version .

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IComparable.CompareTo(Object)

Membandingkan objek saat ini Version dengan objek tertentu dan mengembalikan indikasi nilai relatifnya.

IFormattable.ToString(String, IFormatProvider)

Memformat nilai instans saat ini menggunakan format yang ditentukan.

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

Mencoba memformat nilai instans saat ini ke dalam rentang karakter yang disediakan.

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

Mencoba memformat nilai instans saat ini sebagai UTF-8 ke dalam rentang byte yang disediakan.

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

Mewakili nomor versi rakitan, sistem operasi, atau runtime bahasa umum. Kelas ini tidak dapat diwariskan.

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

Mewakili nomor versi rakitan, sistem operasi, atau runtime bahasa umum. Kelas ini tidak dapat diwariskan.

Berlaku untuk