这是基本的,但就个人而言,我很难过。
我正在接手一个以前组织得不好的C#项目。命名空间非常分散在整个代码中。具体来说,这是一个 Unity 项目,但这实际上只是一个 C# 问题。
在嵌套目录深处的文件中有一个类型(或类)不能在项目其他地方的另一个文件中引用。
如果班级是
MyClass
,它看起来像:
File 1
------
public class MyClass
{
// Stuff inside.
}
和
File 2
------
using ManyThings;
namespace SomeNamespace.NestedNamespace { // These came before me.
public class SomethingElse
{
private MyClass _myClass; // <-- the type "MyClass" cannot be found.
}
}
所以我(天真地)认为如果我在文件 1 周围添加一个命名空间,它会有所帮助:
File 1
------
namespace FindMe
{
public class MyClass
{
// Stuff inside.
}
}
和
File 2
------
using ManyThings;
using FindMe; // <-- The namespace FindMe cannot be found.
// If I name it global::FindMe, it changes nothing.
namespace SomeNamespace.NestedNamespace {
public class SomethingElse
{
private MyClass _myClass; // <-- the type "MyClass" STILL cannot be found.
}
}
我也尝试过像
global::FindMe
这样的东西,以防万一。但是也没有找到。骑手告诉我:Cannot resolve symbol 'FindMe'
。团结告诉我:The type or namespace name 'FindMe' could not be found in the global namespace (are you missing an assembly reference?)
.
我一定错过了一些明显的东西,但是什么?
此外,在 Rider 中,当我尝试在课堂上使用它时,“重构”菜单的内容几乎都是灰色的
MyClass
。我不知道这是否重要。我尝试在使缓存无效后重新启动。
同样,这是一个巨大的项目,有许多未使用的文件。我正在尝试清理它。 这个班级需要保留。这就是为什么我不共享实际代码的原因。它看起来...... icky.
但我错过了什么?
只要您在同一个项目中,这应该可行。
如果您不在同一个项目中,而是在同一个解决方案中,您可以将一个项目的依赖项添加到另一个项目,如下所示:
右键单击项目资源管理器依赖项,添加项目依赖项,选择您的项目
这样你就可以在不同的项目中访问命名空间。
希望这有帮助