c#新类清除基类值

本文关键字:基类 清除 新类 | 更新日期: 2023-09-27 18:03:15

我已经广泛地搜索过了(虽然可能错过了)。我做了这么多的网络开发,我似乎不能得到这个。我有一个基本情况:

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(或者为空,因为它是一个新对象)。在一个类中创建字段(或参数)并在其他类之间共享而不重置它们的值的最佳方法是什么?我试过使用关键词"基地"。我试过使用道具和字段(因为你不能实例化它们)。

我的目标是有一个可设置字段的类,我可以跨类使用它,而不必为每个使用它的类创建新的类。这有道理吗?我相信有更好的方法来做到这一点:)

c#新类清除基类值

听起来你要找的是constantstatic变量。

如果总是相同,则使用constant:

const string myfield1 = "my const";

如果你想设置一次,可以使用static,也许在做了一些逻辑之后:

static string myfield1 = "my static";

这取决于你想如何处理这个"共享数据"。一种方法是使用静态类和依赖注入:

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;
    }
}

Nothing被重置为null,它从来没有在第一次初始化一个值。在基对象中,只有getter/setter,没有任何初始化值本身的代码。

也许我没有很好地理解这个问题,其他人的静态建议是你真正需要的!:)