1

かなり探しました(見落としがあるかもしれませんが)。私はこれを手に入れることができないほど多くのWeb開発を行ってきました。私は基本的なケースを持っています:

public class myfields
{
    public String myfield1 { get; set; }
}

次に、このクラスを使用する別のクラス:

class mydohere : myfields
{
    public Boolean getValue {string xyz)
    {
        string abc = myfield1;
    }
}

私が作成した場合、私がそれを得ることができないのは次のとおりです。

mydohere Objmydohere  = new mydohere();

myfield1 の値が null になりました! ベース myfields のすべての値は null (または新しいオブジェクトであるため空) に設定されます。あるクラスでフィールド (またはパラメーター) を作成し、それらの値をリセットせずに他のクラスと共有するための最良の方法は何ですか? キーワード「base」を使用してみました。props と fields を使用してみました *インスタンス化できないため)。

私の目標は、それを使用しているクラスごとにそのクラスを新しくすることなく、クラス全体で使用できる設定可能なフィールドのクラスを持つことです。これは理にかなっていますか?これを行うにはもっと良い方法があると確信しています:)

4

3 に答える 3

1

あなたが探しているのはconstantorstatic変数のようです。

常に同じになる場合は定数を使用します。

const string myfield1 = "my const";

おそらくいくつかのロジックを実行した後、一度設定したい場合は static を使用してください。

static string myfield1 = "my static";
于 2013-03-11T13:34:07.377 に答える
0

nullにリセットされるものはなく、最初に値で初期化されることはありません。ベースオブジェクトには、ゲッター/セッターのみがあり、値自体を初期化するコードはありません。

たぶん私は質問をよく理解しておらず、静的な他の提案はあなたが本当に必要としているものです!:)

于 2013-03-11T13:38:38.417 に答える
0

これは、この「共有データ」で何をしたいかによって異なります。1 つの方法は、静的クラスと依存性注入を使用することです。

public interface Imyfields
{
    String myfield1 { get; set; }
}

public class myfields : Imyfields
{
    private static readonly Imyfields instance = new myfields();

    private myfields()
    {
    }

    public static Imyfields Instance
    {
        get
        {
            return instance;
        }
    }

    public String myfield1 { get; set; }
}

class mydohere
{
    private readonly Imyfields myfields;

    public mydohere(Imyfields myfields)
    {
        this.myfields = myfields;
    }

    public Boolean getValue(string xyz)
    {
        string abc = this.myfields.myfield1;
    }
}
于 2013-03-11T13:36:46.973 に答える