明确实现带有可选参数的接口时发出警告
||
我在玩可选参数,以查看它们如何与接口一起使用,但遇到一个奇怪的警告。我的设置是以下代码:
public interface ITestInterface
{
void TestOptional(int a = 5, int b = 10, object c = null);
}
public class TestClass : ITestInterface
{
void ITestInterface.TestOptional(int a = 5, int b = 5, object c = null)
{
Console.Write(\"a=\" + a + \" b=\" + b + \" c=\" + c);
}
}
编译器给我以下警告:
为参数\'a \'指定的默认值将无效,因为它适用于在不允许可选参数的上下文中使用的成员
为参数\'b \'指定的默认值将无效,因为它适用于在不允许可选参数的上下文中使用的成员
为参数\'c \'指定的默认值将无效,因为它适用于在不允许可选参数的上下文中使用的成员
如果我使用以下代码运行它:
class Program
{
static void Main(string[] args)
{
ITestInterface test = new TestClass();
test.TestOptional();
Console.ReadLine();
}
}
正如我期望的那样,我得到\“a=5 b=10 c=
\”的输出。
我的问题是警告什么?它指的是什么环境?
没有找到相关结果
已邀请:
4 个回复
部窖空
锹缄
基本上与
原因是,由于必须通过接口调用TestOptional,所以接口将提供参数。在该类上,无法为您提供任何参数值。
郸身
久纳禾澎