5

との 2 つのファイルがありA.csますB.csfn()両方のクラスで使用されるメソッドがあります。

メソッドfn()は両方のクラス ファイルで使用されます。多くのクラス ファイル (たとえば 100 個のファイル) でこのメソッドが必要な場合、これによりコードの複雑さが増します。

このメソッドが定義されているクラスのオブジェクトを作成することで、このメソッドを呼び出すことができることを知っています。このメソッドにアクセスするたびにオブジェクトを作成せずに、2 つ以上のクラス間でこの関数を共有するにはどうすればよいですか?

4

3 に答える 3

8

メソッドを静的クラスに入れます。

public static class Utils
{
     public static string fn()
     {
         //code...
     }
}

その後、毎回クラスの新しいインスタンスを作成することなく、これA.csを呼び出すことができます。B.cs

A foo = new A();
foo.Property = Utils.fn();

BaseClassまたは、すべてのクラスが継承する を作成できます。

public class BaseClass
{
    public BaseClass() { }
    public virtual string fn()
    {
        return "hello world";
    }
}

public class A : BaseClass
{
    public A() { }
}

fn()次に、次のように呼び出します。

A foo = new A();
string x = foo.fn();
于 2013-08-22T09:16:23.593 に答える
1

このメソッドが自己完結型であると仮定すると、静的クラスを作成し、このメソッドを静的メソッドとしてそのクラスに配置できます。このメソッドは、他のクラスによって呼び出されます。

自己完結型でない場合は、スーパー クラスで宣言して、他の 100 個のクラスにそのクラスを拡張させることができます。

于 2013-08-22T09:16:33.943 に答える