【发布时间】:2015-04-27 07:28:27
【问题描述】:
有些类型有TryParse方法,例如Int32、Int64、Boolean等。它允许在没有try\catch块的情况下检查字符串值。当一个循环中处理许多不正确的值时,它对生产率的影响很大。我需要对 LCID 的字符串值执行相同的操作。但是CultureInfo 类没有TryParse 方法。
CultureInfo culture = null;
try {
culture = CultureInfo.GetCultureInfo(Convert.ToInt32(lcid, 16));
}
catch {
}
如何重写这段代码?
【问题讨论】:
-
这段代码有什么问题吗?如果框架提供了这样的方法,它仍然需要尝试/捕获。如果您担心代码的简洁性,那么您可以在字符串类型上创建一个扩展方法。
-
不,我不关心代码的简洁性。但是当一个循环中处理许多不正确的值时,它对生产率的影响很大。在这里,我展示了一些关于比较
try\catch变体和TryGetObjectId的结果(这是TryParse的一些类比):sites.google.com/site/bushmansnetlaboratory/sendbox/stati/… 00:05:30,4050567 和 00:00:00,7027717。生产力差异很大。
标签: c# .net cultureinfo lcid