Две точки:
Я не хочу создавать EngCulture каждый раз, когда вызываю функцию синтаксического анализа
Не думаю, что это на самом деле слишком многобеспокойство - CultureInfo
не будут особенно большими, а что касается производительности, «встроенные» фактически кэшируются, поэтому все, что делает new
, это извлекает существующий объект.Обязательно запишите профиль и посмотрите, действительно ли это проблема ...
Как я могу узнать, использует ли TryParse какие-либо члены-экземпляры EngCulture или нет?
IЯ был бы очень удивлен, обнаружив метод, который принял a CultureInfo
и затем изменил , что CultureInfo
любым способом.Хотя они на самом деле не являются формально неизменяемыми, я бы использовал их (особенно «встроенные»), как если бы они были неизменяемыми, не задумываясь.
Итак, я бы сказал, что есть статический new CultureInfo("en-US", false)
и передайте его - ничто не поменяет его, поэтому проблем с многопоточностью не возникает.