Необязательные аргументы и службы взаимодействия

#c# #optional-arguments

#c# #необязательно-аргументы

Вопрос:

Я впервые использую необязательные аргументы, но я не могу понять разницу между этими двумя определениями метода:

 private void method1([Optional, DefaultParameterValue(string.Empty)] string testString)
{
    //do something
}

private void method2(string testString = "")
{
    //do something
}
  

определение потребностей method1:

 using System.Runtime.InteropServices;
  

Определение Method2 меньше и не требует импорта.

Должен ли я что-то рассмотреть, прежде чем использовать один из этих синтаксисов метода?

Комментарии:

1. Метод 2 является новым в C # 4. Метод 1 существует со времен .NET 1.1.

2. @Этьен де Мартель, это должен быть ответ.

3. @vcsjones Я чувствовал, что это было слишком коротко, чтобы быть правильным ответом…

Ответ №1:

Метод 1 присутствовал начиная с .NET 1.1.

Метод 2 был введен с C # 4 (C # до этого не поддерживал необязательные параметры).