所以我有一个树类:
public class Tree<T> : IEnumerable where T : IComparable<T>
{
private Node<T> root = null;
...
private class Node<T> : IEnumerable<T> where T : IComparable<T>
{
private Node<T> left, right;
...
}
}
它工作正常,但我收到编译器警告:Type parameter 'T' has the same name as the type parameter from outer type 'Tree<T>'
嗯,当然它是相同的名称,它们应该是相同的类型。(事实上,由于Node
该类是私有的,因此永远不能在Tree
类外访问,因此可以保证它们是相同的类型。这个编译器警告只是 BS,我可以放心地忽略吗?或者有什么好的理由我应该给内部类一个不同的通用名称(不仅仅是让警告消失)?
(我看到了这个问题,这是关于警告本身的,但这显然是一个不同的场景。类型保证是相同的,因为Node
's 只在 的上下文中创建和访问Tree
,所以没有混淆的机会。 )