1

私はc#.Netが初めてです。私のソリューションでは、2 つの名前空間が互いに認識できません。

部分クラス c1 といくつかのメソッドを含むプロジェクト A があります。名前空間が異なるプロジェクト B にも部分クラス c1 があり、プロジェクト A にある同じ名前のメソッドと他のメソッドがあります。

プロジェクト B を参照するプロジェクト A に参照を追加し、プロジェクト A クラスに名前空間 B を使用しています。

しかし、まだAでは、Bからクラスc1にあるものを使用できません.A自体からクラスc1のメソッドしか見ることができません。Aの両方のプロジェクトからc1のメソッドを使用したい.

誰でもこれで私を助けてくれますか? 私は.Netフレームワーク4を使用しています

4

2 に答える 2

1

B はおそらく他の名前空間の完全なクラスですが、特定のファイルで部分クラスとしてのみ定義されています。@tzerb が言及しているように、2 つの異なる名前空間に同じ部分クラスを 2 つ持つことはできません。名前空間が異なるため、クラス名自体 (完全修飾) が異なります。

クラス 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包含を使用します。

于 2012-05-21T02:38:45.100 に答える
0

部分クラスは名前空間を共有する必要があります。c1 という 2 つの部分クラスは、まったく異なるクラスです。

于 2012-05-20T22:19:59.670 に答える