Некоторые типы имеют метод TryParse
, например Int32
, Int64
, Boolean
и т. Д. Он позволяет проверять значение строки без блока try \ catch. Это очень влияет на производительность, когда многие неправильные значения обрабатываются в цикле. Мне нужно сделать то же самое для строкового значения LCID. Но класс CultureInfo
не имеет метода TryParse
.Как проверить проверку LCID без try catch block?
CultureInfo culture = null;
try {
culture = CultureInfo.GetCultureInfo(Convert.ToInt32(lcid, 16));
}
catch {
}
Как я могу переписать этот код?
Есть что-нибудь не так с этим кодом? Если бы в рамках данной схемы был бы такой метод, ему все равно пришлось бы попробовать/поймать. Если вас беспокоит кратковременность кода, вы можете создать метод расширения для типа строки. –
Нет, меня не интересует кратковременность кода. Но это очень влияет на производительность, когда многие неправильные значения обрабатываются в цикле. Здесь я показал некоторые результаты о сравнении варианта try \ catch и «TryGetObjectId» (это некоторая аналогия «TryParse»): https://sites.google.com/site/bushmansnetlaboratory/sendbox/stati/database/ сравнить 00: 05: 30,4050567 и 00: 00: 00,7027717. Большая разница в производительности. –