可选参数和InteropServices

我正在使用第一次可选参数,但我无法理解这两个方法定义之间的区别:

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

method1的定义需要:

 using System.Runtime.InteropServices; 

Method2定义较小,无需导入。

在使用其中一种方法语法之前,我是否要考虑一些事情?

从.NET 1.1开始,方法1出现了。

方法2与C#4一起介绍(C#直到那时才支持可选参数)。