我正在将代码转换为 C#9,特别是下面的类实现IGrouping<TKey, TElement>
:
public class Grouping<TKey, TElement> : IGrouping<TKey, TElement>
{
public TKey Key { get; }
public Grouping(TKey key, IEnumerable<TElement> elements)
{
Key = key;
_elements = elements;
}
private readonly IEnumerable<TElement> _elements;
...
}
查找支持空键,所以理论上构造函数应该是:
public Grouping(TKey? key, IEnumerable<TElement> elements)
但随后Key = key;
引发警告,因为Key
未定义为TKey?
(根据接口的规范)。
我觉得界面的定义中缺少一些东西,但也许我错过了什么?