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(或者为空,因为它是一个新对象)。在一个类中创建字段(或参数)并在其他类之间共享而不重置它们的值的最佳方法是什么?我试过使用关键词"基地"。我试过使用道具和字段(因为你不能实例化它们)。
我的目标是有一个可设置字段的类,我可以跨类使用它,而不必为每个使用它的类创建新的类。这有道理吗?我相信有更好的方法来做到这一点:)
听起来你要找的是constant
或static
变量。
如果总是相同,则使用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,没有任何初始化值本身的代码。
也许我没有很好地理解这个问题,其他人的静态建议是你真正需要的!:)