Вы можете написать статический метод следующим образом:
public static string GetResourceTitle<T>(string key)
{
ResourceManager rm = new ResourceManager(typeof(T));
string someString = rm.GetString(key);
return someString;
}
И вызывать где угодно:
var title= GetResourceTitle<*YouResourceClass*>(key);
Это полезно, когда вы хотите иметь универсальную функцию для получения любой строки Файл ресурсов.
Подробности спецификации здесь . По сути, любой символ Юникода (включая экранирующие символы Юникода) в классах символов Lu , Ll , Lt , Lm , Lo , Nl , Mn , Mc , Nd , Pc и ] См. . Первый символ является исключением, и это должна быть буква (классы Lu , Ll , Lt , Lm или ) Lo ) или знак подчеркивания. Кроме того, если идентификатор является ключевым словом, перед ним необходимо поставить @. В противном случае @ не является обязательным.
Допустимые идентификаторы в C # определены в Спецификации языка C # , пункт 9.4.2. Правила очень просты:
Обратите внимание, что, как указывает кружок, термин «символ» в контексте Unicode намного шире, чем просто буквы алфавита.
Обычно много символов Unicode могут быть корректно использованы в идентификаторах, даже если их сложно ввести в Windows.
В качестве примера:
Добавит греческую дельту в верхний регистр в ваш код ... это допустимая буква идентификатора для C #.
Обратите внимание, однако, что соответствие CLS выходит за рамки ... но в любом случае, возможно, вас это не слишком беспокоит.
Категории Unicode можно найти здесь: http://www.dpawson.co.uk/xsl/rev2/UnicodeCategories.html
И оттуда вы можете выбрать большинство вещи внутри групп (из спецификаций , на которые другие тоже правильно указали):
Lu, Ll, Lt, Lm, Lo, Nl, Mn, Mc, Nd, Pc, Cf
Однако имейте в виду, что Visual Studio (или Resharper) не обязательно понравятся все они, но большинство из них компилируются. Возьмем, к примеру, символ 30FB KATAKANA MIDDLE DOT. Он отлично компилируется, но не очень хорошо работает с IDE. Но эта странная штуковина FE34 ПРЕЗЕНТАЦИОННАЯ ФОРМА ДЛЯ ВЕРТИКАЛЬНОЙ ВОЛНЫ НИЗКОЙ ЛИНИИ работает нормально.
Вот разделитель, который отлично работает:
class Person〱WorkOffice〱Helper〱Class
{
}
Я не говорю, что рекомендую использовать странные символы. Но для особых случаев, как это кажется :)
РЕДАКТИРОВАТЬ: Обратите внимание, что в спецификации говорится, что разрешены символы из Unicode 3.0 . Я упустил это из виду и удивился, почему многие персонажи не работают, хотя они были из правильных групп. Подробности смотрите в этом вопросе .