1

私は c# を初めて使用しますが、これはおそらく非常に n00b エラーです。

このプロジェクトでは、作業する既存のコードを渡されました。コードの構造は、サポートする名前空間としてシミュレーションを使用するメイン ソリューションを持っているというものです。

変更したいクラスの 1 つ (Adt_12) をシミュレーション名前空間からコピーし、名前を変更しました (Pb_cs2)。私がコピーした方法は、[名前を付けて保存] をクリックしてから、ファイル名を必要な新しい名前に変更することでした。次に、パブリック クラス名 (およびコンストラクター) をこの新しいファイル名に変更しました。「シミュレーション」を再構築しましたが、正常に再構築されます。

しかし、Pb_cs2 を呼び出そうとすると、上記の「Pb_cs2 という名前の型または名前空間が見つかりませんでした」というメッセージがスローされます。

メインの実行可能クラスで使用している方法。public static Pb_cs2 pb です。(元々は Adt_12 を使用していました)。

ただし、ソリューションと名前空間でまだ Adt_12 を見つけることができます。Pb_cs2はありません。ソリューションを再構築して構築しました。

.NET フレームワークの一般的なエラーは関係ありません。

なぜこれが起こっているのか、どうすれば修正できるのでしょうか? 元のファイルを変更したくありません。

4

3 に答える 3

1

このようにして、ソリューションが calss を確実に認識できるようにします。Project->addclass クラスが選択されていない場合は、クラスを選択します。名前を付けてから、新しいクラスを追加します。ソリューション エクスプローラーに表示されるはずです。コードをコピーして貼り付けます。クラスの名前を変更します。名前空間は問題ありません。

そして、あなたはそれで大丈夫なはずです.

于 2012-08-28T08:55:59.480 に答える
1

ここを見てください。現在のコンテキストに名前が存在しないというVisual Studio

次のことを確認する必要があります。

  1. クラス名と名前空間が同じではありません。Pb_cs2.Pb_cs2コンパイラが混乱するためです。

  2. クラスへのパスを完全に修飾できます。MyNamespace.MyNestedNameSpace.MyClass

  3. ショートカットを使用できます。using MyClass = MyNamespace.MyNestedNamespace.Class1

  4. プロジェクトが同じフレームワーク、つまり .NET 4.0 / .NET 4.0 Client Profile をターゲットにしていることを確認してください。

  5. クラスが別のクラスと同じ名前を持つ衝突が発生する可能性があります。その場合は、オプション 2 を使用するか、クラスの名前を別の名前に変更します。

  6. クラス名が intellisense に表示されない場合、それを探す場所がわかりません。クラスを右クリックして [解決] をクリックすると、クラスを認定する方法に関するいくつかのオプションが表示されます。

...今思いつくのはこれだけです!...頑張ってください!

編集:

C# の文体規則を調べてください...それらのクラス名は醜いです!!!

于 2012-08-28T07:57:14.140 に答える
1

呼び出しているクラスを含む名前空間への参照を追加します。だからあなたは次のようなものを持っているかもしれません

namespace SomeNamespace
{
    public class Pb_cs2
    {
    ...
    }
}

using SomeNamespace;そのため、クラスを呼び出そうとしているファイルの先頭に宣言を追加する必要があります。または、完全修飾名を使用してクラスを呼び出します

SomeNamespace.Pb_cs2 pbcs2 = new SomeNamespace.Pb_cs2();

次のように参照するときに、名前空間へのエイリアスを作成することもできます

using NS = SomeNamespace;

上記の明示的な参照は次のように呼び出すことができます

NS.Pb_cs2 pbcs2 = new NS.Pb_cs2();

これが役立つことを願っています。

于 2012-08-28T07:58:35.463 に答える