1

我已经广泛搜索(尽管可能错过了它)。我一直在做这么多的网络开发,我似乎无法得到这个。我有一个基本案例:

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

然后另一个类使用这个类:

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

我无法得到的是,如果我创建:

mydohere Objmydohere  = new mydohere();

myfield1 的值现在为空!基本 myfields 中的所有值都设置为 null(或为空,因为它是一个新对象)。在一个类中创建字段(或参数)并在其他类中共享而不重置其值的最佳方法是什么?我试过使用关键字'base'。我试过使用道具和字段*因为你不能实例化它们)。

我的目标是拥有一类可设置的字段,我可以在跨类中使用它,而无需为每个使用它的类创建新的类。这有意义吗?我敢肯定有更好的方法来做到这一点:)

4

3 回答 3

1

听起来您正在寻找的是一个constantstatic变量。

如果它总是相同,则使用常量:

const string myfield1 = "my const";

如果您想设置一次,请使用静态,也许在执行一些逻辑之后:

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

这真的取决于你想用这个“共享数据”做什么一种方法是使用静态类和依赖注入:

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 回答
0

没有任何内容被重置为 null,它从未在第一次使用值初始化。在您的基础对象中,您只有一个 getter/setter,您没有任何初始化值本身的代码。

也许我不太了解这个问题,而其他关于静态的建议才是你真正需要的!:)

于 2013-03-11T13:38:38.417 回答