Правильный способ получить экземпляр CodeDomProvider

#c# #mono

#c# #mono

Вопрос:

 var codeProvider = new CSharpCodeProvider();

or 

var codeProvider = new CodeDomProvider.CreateProvider("C#");
  

Похоже, они делают то же самое, что меня смущает!

Ответ №1:

var codeProvider = new CSharpCodeProvider(); где CSharp — известный язык до выполнения.

Смотрите примечание ниже о CodeDomProvider.Ссылка на метод CreateProvider:

Этот метод чаще всего используется для создания экземпляра поставщика кода в приложении, которое при необходимости может использовать одного из нескольких поставщиков. CreateProvider позволяет вам указать во время выполнения поставщика кода, который вы хотите создать. Если во время разработки вы знаете, какой поставщик кода следует использовать, вам следует создать экземпляр этого поставщика кода, а не использовать метод CreateProvider.

Ответ №2:

Я думаю, что и CSharpCodeProvider, и CodeDomProvider.CreatProvider указывает на один и тот же экземпляр объекта, поэтому не имеет значения, какой из них вы используете.