2

部分类和部分方法状态:

部分方法可以是通用的。约束放在定义的部分方法声明上,并且可以选择在实现的部分上重复。实现声明中的参数和类型参数名称不必与定义声明中的相同。

"Constraints are put on the defining partial method declaration, and may optionally be repeated on the implementing one."视觉上和的代码示例是"Parameter and type parameter names do not have to be the same in the implementing declaration as in the defining one."什么?

我不知道上面 2 个语句在代码中的视觉效果如何。

4

2 回答 2

2

宣言

包括通用约束:

public void Method<TName>(int name) where T : class;

执行

没有重复的通用约束和不同的参数名称(但相同的签名):

public void Method<TOther>(int other)
{
    // ....
}
于 2021-10-15T20:46:16.000 回答
1

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

public partial class C {
    public partial void M<T>(int x);
}

public partial class C {
    public partial void M<U>(int y) {
        // implementation goes here...
    }
}

的两个声明M具有不同的类型参数名称(TU),以及不同的参数名称(xy)。

约束放在定义的部分方法声明上,并且可以选择在实现的部分上重复。

这是不正确的。C# 语言规范说:

声明中对应的类型参数必须具有相同的约束(类型参数名称的模数差异)。

请参阅我发布的有关此问题的GitHub 问题。

于 2021-10-15T20:51:32.583 回答