一个命名空间在另一个命名空间中找不到类

本文关键字:命名空间 另一个 找不到 一个 | 更新日期: 2023-09-27 18:34:41

我是 C# .Net 的新手。 在我的解决方案中,两个命名空间无法相互看到。

我有项目 A,其中包含部分类 c1 和一些方法。具有不同命名空间的项目 B 也具有分部类 c1,一些方法在项目 A 和其他一些方法中具有相同的名称。

我在项目 A

中添加了对项目 B 的引用,并在项目 A 类中包含使用命名空间 B。

但是仍然在 A 中,我不能从 B 中使用类 c1

中的内容,我只能从 A 本身看到类 c1 的方法。 我想在 A 中使用来自两个项目的 C1 方法。

有人可以帮我解决这个问题吗? 我正在使用.Net框架4

一个命名空间在另一个命名空间中找不到类

B 大概是另一个命名空间中的完整类,但仅在特定文件中定义为分部类。正如@tzerb提到的,您不能在两个不同的命名空间中有两个相同的分部类 - 由于命名空间不同,类名本身(完全限定(是不同的。

如果您只需要在类 A 中使用类 B 中的方法(并可能覆盖它们(,则可以使用继承:

class A: B
{
    // override methods from B
    // or call base.<method> when needed
}

或遏制:

class A
{
    private B _b;
    // construct and use _b methods directly
}

如果AB,则使用继承,否则使用包含。

分部类必须共享一个命名空间。 称为 c1 的两个偏类是完全不同的类。