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


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

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

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

Определение потребностей метода 1:

using System.Runtime.InteropServices;

Определение Method2 меньше и не нуждается в импорте.

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

1 2

1 ответ:

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

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