在阅读C# 文档中的“部分方法”时,我发现了以下句子:
实现声明中的参数和类型参数名称不必与定义声明中的相同。
有人可以用一个例子解释一下这句话是什么意思吗?
这意味着以下代码,注意参数名称,成功编译:
// 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)
{
}
}
重要的是参数顺序。您可以在实现中选择所需的任何有效名称。
对于“类型参数名称”部分,该部分专门与泛型(T
与V
)有关,其中顺序很重要,而不是名称:
// Definition in file1.cs
partial void Foo<T>(string foo);
// Implementation in file2.cs
partial void Foo<V>(string bar)
{
// method body
}