• ベストアンサー

C#でほかのファイルにある自作クラスを使用したい場合

最近Javaから移ってきたばかりのC#初心者です。 依然作ったことのあるほかのファイルにある自作クラスを 新しいファイルの自作クラスで使用したい場合、どうすれば よいのでしょうか。 Form1.cs(8,7): error CS0246: 型または名前空間名 'Calc1' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 Form1.cs(12,19): error CS0246: 型または名前空間名 'Calc' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 上記のようなエラーが発生してしまいます。 なにとぞご助力をお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>しかし、やはりうまくいきませんでした。 #1で言われているような、namespace, using 指定と参照設定でうまくいくと思うんですけど・ 自作クラスを補足することはできますか?

tatapata
質問者

お礼

申し訳ありませんでした。 教えていただいた方法で再度試してみたところ、 何とか動作しました。 何か気づかないところでミスをしていたみたいです。 本当に申し訳ありませんでした。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

自作クラスを csc /target:library MyClass.cs のようにコンパイルすれば、Dll を作成することができます。 DLLとして作成しておけば、参照設定すればいいです。

tatapata
質問者

お礼

BLUEPIXYさん、ありがとうございます。 しかし、やはりうまくいきませんでした。 エラー内容はまったく同じです。 よろしければ、引き続きご助力いただけますと幸いです。

すると、全ての回答が全文表示されます。
回答No.1

自作クラスのnamespaceをusingにて宣言してしまえばいいのではないかなと思います。 ex: //ClassTest.cs using System; using nmCalc; using nmCalc1; namespace CalcTest { public class CalcTest { public CalcTest() { Calc1 foo = new Calc1(); Calc bar = new Calc(); // using を使いたくないのであれば // nmCalc1.Calc1 foo = new nmCalc1.Calc1(); // nmCalc.Calc bar = new nmCalc.Calc(); } } } namespace nmCalc1 { public class Calc1 { public Calc1(){} } } //Calc.cs namespace nmCalc { public class Calc { public Calc(){} } }

参考URL:
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_002/cs2_002_01.html
tatapata
質問者

お礼

Celebrityさん、ありがとうございました。 頂いたサンプルのとおり、 ClassTest.csとCalc.csでコンパイルしてみたところ、 Calc1のクラスは認識したみたいなのですが、別ファイルにある Calcクラスはいまだに ClassTest.cs(3,7): error CS0246: 型または名前空間名 'nmCalc' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 …とのエラーが出てしまいます。 よろしければ、引き続きご助力していただけますと幸いです。 よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A