2017-10-04 14 views
0

dllを作成しました。それをExampleHelper.dllとします。他のプロジェクトで使用するためにdllからクラスをインスタンス化する必要があります

私はdllにコンパイルしたVisual Studioのクラスライブラリの構造は以下の通りです:

namespace ExampleHelper 
{ 
    public class Example 
    { 
     public string GetExamples(string input) 
     { 
      // stuff 
     } 
    } 
} 

だから、私はによって、私はこれらのExampleHelperクラスを使用したい私の他のプロジェクトでそれを参照します問題のファイルの先頭にusingの行を追加:

using ExampleHelper;

を今、私は私がある、ExampleHelperからクラスにアクセスできることを見ることができますExampleと呼ばれます。しかし、私はそのクラスのメソッドにアクセスすることはできません。つまり、GetExamplesが存在しないと言うので、Example.GetExamples("hello")と書くことはできません。

私はこれを行うことができることに気づいた。もちろん、私は使用することができます

Example e = new Example(); 
e.GetExamples("hello"); 

を、それは新しいオブジェクト私はヘルパーメソッドを使用するたびに、インスタンス化するために、かなり右に感じることはありません。

私は完全に間違ったことをしましたか?私の推測ははいですが、どこが間違っているのか分かりません。どんな助けにも感謝!

+0

インスタンスを作成したくない場合は、メソッド(およびおそらくクラス)を静的にします。 – CodeCaster

+0

[C#の「静的メソッド」とは何ですか?](https://stackoverflow.com/質問/ 4124102/whats-a-static-method-in-c) – Liam

答えて

1

このメソッドを呼び出すには、Exampleオブジェクトのインスタンスが必要です。 オブジェクトのインスタンスがないメソッドを呼び出すには、メソッドが静的でなければなりません。

public static string GetExamples(string input) 

は、メソッドの宣言である必要があります。

1

GetExamples(string input)static方法

public static string GetExamples(string input) 

静的メソッドは、クラスのインスタンスを必要としないことを確認します。

関連する問題