このコンテキストで記号である文字:名前空間のUnicodeCategory.MathSymbol、UnicodeCategory.CurrencySymbol、UnicodeCategory.ModifierSymbolおよび。これらは、それぞれ Sm、Sc、Sk、および So と指定された Unicode 文字です。他のすべての文字は を返します。UnicodeCategory.OtherSymbolSystem.GlobalizationFalse
.Net ソースから:
internal static bool CheckSymbol(UnicodeCategory uc)
{
switch (uc)
{
case UnicodeCategory.MathSymbol:
case UnicodeCategory.CurrencySymbol:
case UnicodeCategory.ModifierSymbol:
case UnicodeCategory.OtherSymbol:
return true;
default:
return false;
}
}
またはVB.Netに変換:
Friend Shared Function CheckSymbol(uc As UnicodeCategory) As Boolean
Select Case uc
Case UnicodeCategory.MathSymbol, UnicodeCategory.CurrencySymbol, UnicodeCategory.ModifierSymbol, UnicodeCategory.OtherSymbol
Return True
Case Else
Return False
End Select
End Function
CheckSymbolIsSymbol指定された文字の Unicode カテゴリで呼び出されます。
*はカテゴリに含まれているためOtherPunctuation(これは で確認できますchar.GetUnicodeCategory())、シンボルとは見なされず、メソッドは正しく を返しますFalse。
質問に答えるには: を使用char.GetUnicodeCategory()して、キャラクターがどのカテゴリに該当するかを確認し、独自のロジックに含めるかどうかを決定します。