VB.NET區域性在實際應用中作用體現
VB.NET編程語言的推出,為大家帶來了非常大好處,比如可以實現代碼的托管。并且還能支持類的各種性能。在這里我們會了解到VB.NET區域性的應用對其他一些特定操作的影響,以便大家理解這一語言的應用方式。#t#
何時使用特定于VB.NET區域性的字符串
所有 Visual Basic 字符串轉換函數(除 Str 和 Val 函數外)都使用應用程序的區域性信息,以確保轉換和比較適合于應用程序用戶的區域性。
在運行于具有不同區域性設置的計算機上的應用程序中成功使用字符串轉換函數的關鍵在于:了解哪些函數使用特定的區域性設置,哪些函數使用當前區域性設置。請注意,應用程序的區域性設置默認情況下是從操作系統的區域性設置中繼承的。有關更多信息,請參見 Asc、AscW 函數、Chr、ChrW 函數、Format 函數、Hex 函數 (Visual Basic)、Oct 函數 和 類型轉換函數。
在字符串和數字之間進行轉換時,Str(將數字轉換為字符串)以及 Val(將字符串轉換為數字)函數不使用應用程序的VB.NET區域性信息。相反,它們只將句點 (.) 識別為有效的小數點分隔符。與這些函數類似的可識別區域性的函數包括:
使用當前區域性的轉換。CStr 和 Format 函數將數字轉換為字符串,而 CDbl 和 CInt 函數將字符串轉換為數字。
使用特定區域性的轉換。每個數字對象都有一個將數字轉換為字符串的 ToString(IFormatProvider) 方法,以及一個將字符串轉換為數字的 Parse(String, IFormatProvider) 方法。例如,Double 類型提供了 ToString(IFormatProvider) 和 Parse(String, IFormatProvider) 方法。
使用特定區域性
在以下兩種很重要的情況下,需要進行字符串比較:
對數據進行排序,以便向用戶顯示。使用基于當前VB.NET區域性的運算,以使字符串正確排序。
確定兩個應用程序內部字符串是否完全匹配(通常用于安全目的)。使用不考慮當前區域性的運算。
使用 Visual Basic StrComp 函數可以執行這兩種類型的比較。指定可選參數 Compare 可控制比較的類型:對于大多數輸入和輸出,可指定 Text,如果要確定是否完全匹配,可指定 Binary。
StrComp 函數返回一個整數,該整數指示所比較的兩個字符串之間基于排序順序的關系。正數結果值指示第一個字符串大于第二個字符串。負數結果指示第一個字符串較小,而零指示兩個字符串相等。
- Visual Basic
- ' Defines variables.
- Dim TestStr1 As String = "ABCD"
- Dim TestStr2 As String = "abcd"
- Dim TestComp As Integer
- ' The two strings sort
equally. Returns 0.- TestComp = StrComp(TestStr1,
TestStr2, CompareMethod.Text)- ' TestStr1 sorts after TestStr2.
Returns -1.- TestComp = StrComp(TestStr1,
TestStr2, CompareMethod.Binary)- ' TestStr2 sorts before
TestStr1. Returns 1.- TestComp = StrComp(TestStr2,
TestStr1)
也可以使用 .NET Framework 中與 StrComp 函數對應的 String..::.Compare 方法。這是基字符串類的靜態重載方法。下面的示例闡釋如何使用此方法:
- Visual Basic
- Dim myString As String
= "Alphabetical"- Dim secondString As
String = "Order"- Dim result As Integer
- result = String.Compare
(myString, secondString)
為了更細致地控制比較的執行方式,您可以使用 Compare 方法的附加重載。利用 String..::.Compare 方法,您可以使用 comparisonType 參數來指定要使用哪種比較方式。
VB.NET區域性應用安全注意事項
如果應用程序根據比較或大小寫轉換運算的結果制定安全決策,則運算應使用 String..::.Compare 方法,并為 comparisonType 參數傳遞 Ordinal 或 OrdinalIgnoreCase。