• 締切済み

1つのプロジェクトで、違う名前空間のメソッドを使いたい

C# 同じプロジェクトで、別のnamespaceのprivateメソッド使いたいですが、方法を教えてくださいませんか?宜しくお願いします。

みんなの回答

回答No.2

#1の例をコードにするとこんな感じです。(using部分は省略) [ class1.cs ] namespace ns1 {   class Class1   {     static internal void MethodA()     {       Console.WriteLine("Called");     }   } } [ program.cs ] namespace Sample {   static class Program   {     /// <summary>     /// アプリケーションのメイン エントリ ポイントです。     /// </summary>     [STAThread]     static void Main()     {       ns1.Class1.MethodA();     }   } } どのようなコードを書いているかご提示できますか?(可能であれば)

回答No.1

privateメンバは、名前空間に関わらず定義されているクラスの外からは直接呼び出せません。メソッドをinternalまたはpublicとし、名前空間から指定すれば呼び出せます。また、インスタンスを作成しないで呼び出すにはstaticも必要です。 例:名前空間が ns1、クラス名が class1 のinternal static void MethodA() を呼ぶ場合 ns1.class1.MethodA()

iandyouand
質問者

補足

うまくいけないが…

関連するQ&A

  • 同じソリューション内の別のプロジェクトのメソッド呼び出し

    同じソリューション内の別のプロジェクトのメソッド呼び出し お世話になっております。 Visual Studio でC#で開発をしております。 初心者です。 同じソリューション内にある別のプロジェクトのメソッドを呼び出す方法は どの様にしたら宜しいのでしょうか。 下記の様に記述しましたら、 「静的でないフィールド、メソッド、またはプロパティ ~省略~ で、  オブジェクト参照が必要です」と言うエラーが出てしまいます。 何か根本的に間違っているのかも知れません。 何卒、ご教授頂きたく宜しくお願い致します。         記 呼び出し側 private void button1_Click(object sender, EventArgs e) {   呼び出し先のプロジェクト名.クラス名.メソッド名();  } 呼び出される側 namespace プロジェクト名 { public class クラス名 {    メソッド名()    {      処理内容     }   }  }

  • ConsoleApplicationから別プロジェクトのメソッド呼び出

    ConsoleApplicationから別プロジェクトのメソッド呼び出し お世話になります。 .NET C#で開発をしています。 初心者です。 ConsoleApplicationから別プロジェクトのメソッドを呼び出す事は 可能でしょうか。 もし可能であればどの様に記述したら宜しいでしょうか。 簡単なサンプルコードを頂ければ、非常に助かるのですが・・。 宜しくお願い申し上げます。

  • VB2008:プロジェクト参照で名前空間が出てこない。

    VB2008:プロジェクト参照で名前空間が出てこない。 クラスライブラリを作ろうとプロジェクトC(ルート名前空間R)を作成しました。 別のプロジェクトAからCを参照しても、インテリセンスでR名前空間が出てきません。ビルドしてもダメでした。 オブジェクトブラウザにはRが表示されています。 プロジェクトCをビルドして、プロジェクトAからDLLを参照すれば問題は発生しません。 クラスライブラリも合わせて修正したいので、プロジェクト参照を使いたいのですが どのようにすれば良いのでしょうか? よろしくお願いします。

  • privateのメソッドをリフレクションで呼び出す方法

    privateのメソッドをリフレクションで呼び出す方法 private のメソッドをリフレクションで呼び出す方法 privateのメソッドもリフレクションというもので呼び出せると聞きましたが、やり方がよく分かりません。 aaaやbbbクラスのインスタンスを生成したいのですが、privateやpackage privateのため、そのままだとインスタンスが生成できません。 forNameメソッドやnewInstanceメソッドでどうにかできないかと試してみたのですが、イリーガル例外が発生してしまいます。 何かよい方法がないでしょうか? aaa, bbbのクラスを継承してモックを作成する方法もあるのですが、今回はそういった方法ではなく、privateやpackage privateメソッド(特にコンストラクタ)を外部から呼び出す方法がよいです。 public aaa { private aaa() { } private func() { } } public bbb { aaa() { } private func() { } }

    • ベストアンサー
    • Java
  • クラスを作るとメソッドの数が多くなりすぎる

    クラスを作ると,たいがい,メソッドの数が多くなりすぎて,メソッドをさがすのに一苦労します. なにか,クラスのメソッドの設計でいい方法はないでしょうか? メソッドが増えすぎる原因として, ・フィールド変数1つにつき,取得メソッド,設定メソッドで(最大)2つ必要. ということがあります. あと, ・private のメソッド(クラス内部でよく使われる手続きをまとめたもの)が結構必要. ・private のメソッドから呼び出す private のメソッドが結構必要. ということがありますが,publicメソッドがこれらのメソッドと紛れてしまう,ということがあります.

    • ベストアンサー
    • Java
  • C# 他のnamespaceにあるメソッドなどの呼び出しについて

    C#でソフトウェアを作成しています。質問は2つあります。 質問1 引き継いだプログラムに3つのnamespaceがあります。その一つだけ太文字になっています(多分、主力だから?)。太文字による影響を知りたいです。 質問2 同じnamesapace内では、他のクラスのメソッドや変数はインスタンス化を行って呼び出すことが出来ました。また太文字ではないnamespaceにあるクラスのメソッドや変数を、太文字のnamespaceにあるクラスで呼び出すことは出来ます。 しかし、太文字のnamespaceにあるクラスのメソッドや変数を、太文字ではないnamespaceにあるクラスでインスタンス化を行っても呼び出すことが出来ません。下のようなエラーが出てしまいます。どのような問題があるのでしょうか。 型または名前空間名'namespaceA'が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。

  • 【vb2005】プロジェクト全体で使用するメソッドの名称モトム

    23歳男性です。 visual studio 2005で開発しております。 プロジェクト全体で使用するメソッドがあるんですが、そのメソッドの名称をどんなのにすればいいか悩んでおります。 今考えているのは、プロジェクト全体なので「whole」(全体)というのを考えていますがしっくりきません。 「プロジェクト全体」という言葉にしっくりくるような名称ってあるのでしょうか? 宜しくお願いします。

  • VB.NETのクラスプロジェクトのメソッド等をC#側で利用

    VB.NETのクラスプロジェクトのメソッド等をC#側で利用したいのですが、 参照設定に追加しても使用できません。 C#で使用することは無理なのでしょうか?

  • イラストレーター プロジェクトから別のプロジェクト

    レイヤーまたは、素材を別のプロジェクトへコピーしたいのですが cmd+c(Mac)で行いましたが出来ません。 方法ありましたら教えていただけませんでしょうか?

  • スーパークラスからサブクラスのメソッドを使おうとする、以下のプログラム

    スーパークラスからサブクラスのメソッドを使おうとする、以下のプログラムでつまずいています。 Aを継承したB、Cクラスのインスタンスを作成し、スーパークラスであるA型の配列asにまとめます。 それからループでas[i]にはいっている各インスタンスのメソッドを使いたいのですが、 スーパークラスAにmethod()がないためコンパイルできません、Aにmethod()を作るとA.method()が実行されます。 BとCを同じ配列に保存し、かつそれぞれのmethod()を実行したい場合どのようにしたら良いのでしょうか。 ご教授ください、どうぞよろしくお願いします。 class Main{ private B b; private C c; private A[] as = new A[2]; void mainMethod(){ as[0] = b = new B(); as[1] = c = new C(); for(int i=0; i<3; i++){ as[i].method(); } } } class A{} class B extends A{ void method(){ System.out.print("It is B"); } } class C extends A{ void method(){ System.out.print("It is C"); } }

専門家に質問してみよう