[英]What is the nearest equivalent to Java's Character.isDefined, in .NET?
[英]Java.lang.Character.isUnicodeIdentifierStart() equivalent in .NET
沒有直接為此的方法。 在大多數.NET語言中, 標識符可以是任何Unicode“字母”或下划線,因此您可以輕松地將其編寫為:
bool IsValidIdentifierStart(char ch)
{
return ch == '_' || char.IsLetter(ch);
}
請注意,CLR更靈活。 CLS規范的第8.5.1章指出:
程序集應遵循Unicode標准3.0的技術報告15的附件7,該規范規定了允許開始並包含在標識符中的字符集,該字符集可在http://www.unicode.org/unicode/reports/tr15/tr15上在線獲取。 -18.html 。 標識符應采用Unicode規范表C定義的規范格式。
這使運行時可以使用許多標准語言無法識別的標識符。
您可以使用Char.IsLetter(),因為Unicode標識符必須以字母開頭。
編輯:IsLetter()將為下划線返回true,這是無效的,因此也應進行檢查。
如果您需要的不是ch == '_' || char.IsLetter(ch)
Reed Copsey建議使用ch == '_' || char.IsLetter(ch)
,而不要查看Char.GetUnicodeCategory ,它可以為您提供字符的詳細Unicode分類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.