<CompatSortNLSVersion> 項目

更新:2010 年 5 月

指定執行階段在執行字串比較時,應使用舊版排序次序。

<CompatSortNLSVersion  
   enabled="4096"/

屬性和項目

下列各節將說明屬性、子項目和父項目。

屬性

屬性

描述

enabled

必要屬性。

指定要使用其排序次序的地區設定識別碼。

啟用屬性

描述

4096

表示替代排序次序的地區設定識別碼。 在這種情況下,4096 表示 .NET Framework 3.5 和更早版本的排序次序。

子項目

無。

父項目

項目

描述

configuration

Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中的根項目。

runtime

包含與執行階段初始化選項有關的資訊。

備註

由於 .NET Framework 4 中的 System.Globalization.CompareInfo 類別所執行的字串比較、排序和大小寫作業符合 Unicode 5.1 標準,因此字串比較方法 (例如 String.Compare(String, String)String.LastIndexOf(String)) 的結果可能與舊版 .NET Framework 不同。 如果您的應用程式依賴舊版的行為,則可將 <CompatSortNLSVersion> 項目包含在您的應用程式組態檔中,以還原 .NET Framework 3.5 (含) 以前版本中使用的字串比較和排序規則。

重要事項重要事項

還原舊版字串比較和排序規則也需要在本機系統上提供可用的 sort00001000.dll 動態連結程式庫。

在建立應用程式定義域時,將字串 "NetFx40_Legacy20SortingBehavior" 傳遞給 SetCompatibilitySwitches 方法,您也可以在特定的應用程式定義域中使用舊版字串排序和比較規則。

範例

下列範例會具現化兩個 String 物件,並呼叫 String.Compare(String, String, StringComparison) 方法,以使用目前文化特性的慣例進行比較。

Enum StringComparisonResult As Integer
   precedes = -1
   equals = 0
   follows = 1      
End Enum

Module Example
   Public Sub Main()
      Dim str1 As String = ChrW(&h219) + ChrW(&h21B) + "a"
      Dim str2 As String = "a"

      Console.WriteLine("{0} {1} {2} in the sort order.", _
                        str1, _ 
                        CType(String.Compare(str1, str2, StringComparison.CurrentCulture), StringComparisonResult), _ 
                        str2)       
   End Sub
End Module
using System;

enum StringComparisonResult
{
    precedes = -1,
    equals = 0,
    follows = 1,
};

public class Example
{
   public static void Main()
   {
      string str1 = new string( new char[] {'\u0219', '\u021B', 'a' });
      string str2 = "a";

      Console.WriteLine("{0} {1} {2} in the sort order.", 
                        str1, 
                        (StringComparisonResult) String.Compare(str1, str2, StringComparison.CurrentCulture),  
                        str2);       
   }
}

當您在 .NET Framework 4 上執行範例時,會顯示下列輸出。

sta follows a in the sort order.

這與您在 .NET Framework 3.5 上執行範例時顯示的輸出完全不同。

sta equals a in the sort order.

不過,如果您將下列組態檔加入到範例的目錄中,然後在 .NET Framework 4 執行該範例,則輸出會與在 .NET Framework 3.5 上執行範例時產生的輸出完全相同。

<?xml version ="1.0"?>
<configuration>
   <runtime>
      <CompatSortNLSVersion enabled="4096"/>
   </runtime>
</configuration>

請參閱

參考

執行階段設定結構描述

其他資源

.NET Framework 的組態檔結構描述

變更記錄

日期

記錄

原因

2010 年 5 月

請注意,<CompatSortNLSVersion> 參數取決於 sort00001000.dll。

內容 Bug 修正。