我很确定我们每个人都可能在某些时候看到过这个问题,但我确实经常看到这个问题,但无法重现它。这是问题所在:
有时我们将Namespace和Class命名为具有相同的名称,那么编译器有时会感到困惑,并且不知道我们是否引用了类或程序集,并且在我们尝试引用它时不会解析该类我们的申请。
这件事发生在我身上。但是,它并不总是发生在我身上。此外,我的同事都没有遇到这个问题。因此,当我更改类名以区别于命名空间时,他们认为说具有相同的命名空间名称和类名是可以的。
我知道它不行,它会在某些时候抛出参考错误,但没有任何证据,因为我无法重现相同的错误。知道我怎么能重现这个?
答案 0 :(得分:1)
简而言之,是的,如果您有不明确的课程,VS会发生冲突。假设您有一个模块A,它引用模块B和C.模块B包含一个类My.Namespace.AwesomeClass。模块C还包含另一个名为My.Namespace.AwesomeClass的类。
由于A指的是B和C,因此您不能指望编译器自动区分您的用法。所以它会给你一个错误。最好通过提供唯一的名称来避免这种情况。
为命名创作提供了一些基本准则:
命名空间和类名一起唯一地描述您的类。无论VS错误如何,为所有构造提供清晰明确的名称总是一个好主意。
命名空间唯一定义:
您的班级名称定义了该功能。
因此,只要您具有良好的功能,就很难在命名中产生冲突。