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