gpt4 book ai didi

c# - 为什么我们必须命名接口(interface)方法参数?

转载 作者:IT王子 更新时间:2023-10-29 04:34:05 26 4
gpt4 key购买 nike

在 C# 中,我们必须命名接口(interface)方法的参数。

我知道即使我们没有必要,这样做也会帮助读者理解意思,但在某些情况下并不是真的需要:

interface IRenderable
{
void Render(GameTime);
}

我想说上面的内容和下面的一样具有可读性和意义:

interface IRenderable
{
void Render(GameTime gameTime);
}

是否有一些技术原因要求接口(interface)上方法的参数名称?


值得注意的是,接口(interface)方法的实现可以使用与接口(interface)方法中不同的名称。

最佳答案

一个可能的原因可能是使用可选参数。

如果我们使用接口(interface),就不可能指定命名参数值。一个例子:

interface ITest
{
void Output(string message, int times = 1, int lineBreaks = 1);
}

class Test : ITest
{

public void Output(string message, int numTimes, int numLineBreaks)
{
for (int i = 0; i < numTimes; ++i)
{
Console.Write(message);
for (int lb = 0; lb < numLineBreaks; ++lb )
Console.WriteLine();
}

}
}

class Program
{
static void Main(string[] args)
{
ITest testInterface = new Test();
testInterface.Output("ABC", lineBreaks : 3);
}
}

在这个实现中,使用接口(interface)时,timeslineBreaks都有默认参数,所以如果通过接口(interface)访问,可以使用默认值,不用命名参数,我们将无法跳过 times 参数并仅指定 lineBreaks 参数。

仅供引用,取决于您是通过接口(interface)还是通过类访问 Output 方法来确定默认参数是否可用,以及它们的值是什么。

关于c# - 为什么我们必须命名接口(interface)方法参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com