プロが教えるわが家の防犯対策術!

C#でソフトウェアを作成しています。質問は2つあります。

質問1
引き継いだプログラムに3つのnamespaceがあります。その一つだけ太文字になっています(多分、主力だから?)。太文字による影響を知りたいです。

質問2
同じnamesapace内では、他のクラスのメソッドや変数はインスタンス化を行って呼び出すことが出来ました。また太文字ではないnamespaceにあるクラスのメソッドや変数を、太文字のnamespaceにあるクラスで呼び出すことは出来ます。
しかし、太文字のnamespaceにあるクラスのメソッドや変数を、太文字ではないnamespaceにあるクラスでインスタンス化を行っても呼び出すことが出来ません。下のようなエラーが出てしまいます。どのような問題があるのでしょうか。

型または名前空間名'namespaceA'が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。

A 回答 (1件)

その3個のネームスペースはどのように存在するのでしょう



同一ソリューション内の別プロジェクト
同一ソリューション内の同一プロジェクト
3個とも別ソリューション
など 再現可能な最小手順を示しましょう

また コンパイルエラーなどが起きているなら 出力ウィンドウの該当部分を明示しましょう


------ ビルド開始: プロジェクト: CSSampleDraw, 構成: Debug Any CPU ------
X:\XX\CSSampleDraw\Form1.cs(44,28): エラー CS0119: 'CSSampleDrawN2.Form1' は '型' ですが、指定されたコンテキストでは有効ではありません
X:\XXX\CSSampleDraw\Form1.cs(45,13): エラー CS0103: 名前 'form' は現在のコンテキスト内に存在しません。

ソース
  private void button2_Click(object sender, EventArgs e)
  {
    CSSampleDrawN2.Form1 = new CSSampleDrawN2.Form1();
    form.Show();
  }
この場合、上記のエラーはインスタンス用のローカル変数が無いためですが

この回答への補足

ソリューション'ABC'(3プロジェクト)
|ーー namespaceB

|ーー namespaceC

|ーー namespaceA(太文字)
namespaceの構成です。

太文字は関係ないようでした。ソリューションのプロパティで他のnamespaceを太文字に変更してコンパイルをしてみましたが、結局namespaceAのメッソドや変数をnamespaceCで呼び出すことは出来ませんでした。

------ ビルド開始 : プロジェクト : namespaceA, 構成 : Debug .NET ------
警告 : プロジェクト 'namespaceA' の依存関係 'namespaceB, Version=数字, Culture=neutral' は、参照 'namespaceB, Version=数字, Culture=neutral' を上書きするため、実行ディレクトリにコピーできません。
ビルド : 2 正常終了、1 失敗、0 スキップ

タスク一覧の!マークには、namespaceB(呼び出し元)のプログラムでnamespaceAのところに波線が出ます。

補足日時:2009/01/27 16:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!