一个命名空间无法在其他命名空间中找到类

时间:2012-05-20 22:16:53

标签: c# .net-4.0 reference namespaces partial-classes

我是c#.Net的新手。在我的解决方案中,两个名称空间无法看到对方。

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

我在项目A中添加了引用项目B的引用,在项目A类中包含using namespace B。

但是仍然在A中,我不能使用B中的类c1中的内容,我只能从A本身看到类c1的方法。我想使用A中两个项目的c1方法。

有人可以帮帮我吗?我正在使用.Net framework 4

2 个答案:

答案 0 :(得分:1)

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
}

如果A B,请使用继承,否则请使用包含。

答案 1 :(得分:0)

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