2

在阅读C# 文档中的“部分方法”时,我发现了以下句子:

实现声明中的参数和类型参数名称不必与定义声明中的相同。

有人可以用一个例子解释一下这句话是什么意思吗?

4

1 回答 1

5

这意味着以下代码,注意参数名称,成功编译:

// Definition in file1.cs
partial void Foo(string foo);

// Implementation in file2.cs
partial void Foo(string bar)
{
  // method body
}

就像接口的情况一样:

public interface IFoo
{
    void Bar(string baz);
}

public class Foo : IFoo
{
    public void Bar(string qux)
    {
    }
}

重要的是参数顺序。您可以在实现中选择所需的任何有效名称。

对于“类型参数名称”部分,该部分专门与泛型(TV)有关,其中顺序很重要,而不是名称:

// Definition in file1.cs
partial void Foo<T>(string foo);

// Implementation in file2.cs
partial void Foo<V>(string bar)
{
  // method body
}
于 2015-11-18T21:04:57.507 回答