Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan apakah runtime mempertahankan perilaku lama dalam operasi pemformatan dengan System.TimeSpan nilai.
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode>
Sintaksis
<TimeSpan_LegacyFormatMode
enabled="true|false"/>
Atribut dan Elemen
Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.
Atributs
| Karakteristik | Deskripsi |
|---|---|
enabled |
Atribut yang diperlukan. Menentukan apakah runtime menggunakan perilaku pemformatan lama dengan System.TimeSpan nilai. |
Atribut yang diaktifkan
| Nilai | Deskripsi |
|---|---|
false |
Runtime tidak memulihkan perilaku pemformatan warisan. |
true |
Runtime memulihkan perilaku pemformatan lama. |
Elemen Anak
Tidak ada.
Elemen Induk
| Elemen | Deskripsi |
|---|---|
configuration |
Elemen akar dalam setiap file konfigurasi yang digunakan oleh runtime bahasa umum dan aplikasi .NET Framework. |
runtime |
Berisi informasi tentang opsi inisialisasi runtime. |
Komentar
Dimulai dengan .NET Framework 4, struktur mengimplementasikan System.TimeSpanIFormattable antarmuka dan mendukung operasi pemformatan dengan string format standar dan kustom. Jika metode penguraian menemukan penentu format atau string format yang tidak didukung, metode penguraian akan melemparkan FormatException.
Dalam versi .NET Framework sebelumnya, TimeSpan struktur tidak mengimplementasikan IFormattable dan tidak mendukung string format. Namun, banyak pengembang secara keliru berasumsi bahwa TimeSpan memang mendukung serangkaian string format dan menggunakannya dalam operasi pemformatan komposit dengan metode seperti String.Format. Biasanya, jika jenis mengimplementasikan IFormattable dan mendukung string format, panggilan ke metode pemformatan dengan string format yang tidak didukung biasanya melemparkan .FormatException Namun, karena TimeSpan tidak mengimplementasikan IFormattable, runtime mengabaikan string format dan malah memanggil metode tersebut TimeSpan.ToString() . Ini berarti bahwa, meskipun string format tidak berpengaruh pada operasi pemformatan, keberadaannya tidak menghasilkan .FormatException
Untuk kasus di mana kode lama meneruskan metode pemformatan komposit dan string format yang tidak valid, dan kode tersebut tidak dapat dikompilasi ulang, Anda dapat menggunakan elemen untuk <TimeSpan_LegacyFormatMode> memulihkan perilaku lama TimeSpan . Saat Anda mengatur enabled atribut elemen ini ke true, metode pemformatan komposit menghasilkan panggilan ke TimeSpan.ToString() dan bukan TimeSpan.ToString(String, IFormatProvider), dan a FormatException tidak dilemparkan.
Contoh
Contoh berikut membuat TimeSpan instance objek dan mencoba memformatnya dengan String.Format(String, Object) metode dengan menggunakan string format standar yang tidak didukung.
using System;
public class Example
{
public static void Main()
{
TimeSpan interval = new TimeSpan(12, 30, 45);
string output;
try {
output = String.Format("{0:r}", interval);
}
catch (FormatException) {
output = "Invalid Format";
}
Console.WriteLine(output);
}
}
Module Example
Public Sub Main()
Dim interval As New TimeSpan(12, 30, 45)
Dim output As String
Try
output = String.Format("{0:r}", interval)
Catch e As FormatException
output = "Invalid Format"
End Try
Console.WriteLine(output)
End Sub
End Module
Saat Anda menjalankan contoh di .NET Framework 3.5 atau pada versi sebelumnya, ini menampilkan output berikut:
12:30:45
Ini sangat berbeda dari output jika Anda menjalankan contoh pada .NET Framework 4 atau versi yang lebih baru:
Invalid Format
Namun, jika Anda menambahkan file konfigurasi berikut ke direktori contoh dan kemudian menjalankan contoh pada .NET Framework 4 atau versi yang lebih baru, outputnya identik dengan yang dihasilkan oleh contoh saat dijalankan di .NET Framework 3.5.
<?xml version ="1.0"?>
<configuration>
<runtime>
<TimeSpan_LegacyFormatMode enabled="true"/>
</runtime>
</configuration>