我进行了广泛的搜索(尽管可能已经错过了)。我一直在做这么多网页开发,我似乎无法得到这个。我有一个基本案例:
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'。我尝试过使用道具和字段*因为你无法实例化它们。
我的目标是拥有一类可设置的字段,我可以跨类使用,而不会为使用它的每个类创建新类。这有意义吗?我确信有更好的方法可以做到这一点:)
答案 0 :(得分:1)
听起来你正在寻找的是constant
或static
变量。
如果始终相同,则使用常量:
const string myfield1 = "my const";
如果你想设置一次,可以使用static,也许是在做了一些逻辑之后:
static string myfield1 = "my static";
答案 1 :(得分: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;
}
}
答案 2 :(得分:0)
没有任何东西被重置为null,它从未在第一次使用值初始化。在您的基础对象中,您只有一个getter / setter,您没有任何初始化该值的代码。
也许我不太了解这个问题,而其他人对静态的建议是你真正需要的! :)