我还没有在oop练习..现在我知道它的重要性了:)
我有很多方法,现在我喜欢将收集的字符串保存在公共变量中,以便有可能从另一个函数访问它们。
normaly我只使用get和set来制作公共或私有变量。
但是我认为它不是那么干净,因为这种特性在“每一个智能感知”中都是可见的。
我认为在类中执行此操作可能是“testClass”并在那里定义属性。
但是现在,我如何访问我写入这个类的属性的值?要编写它们我必须创建一个新的类实例,但是如何访问创建的实例?
//编辑
protected void GetValues()
{
// Access to the public variable town.
string myNewtown = publictown;
string myNewName = publicname;
// How to acces to the values which I saved in the class informations?
// I like anything like that
string myNewtown = informations.publictown;
string myNewName = informations.publicname;
// or
string myNewtown = myinfo.publictown;
string myNewName = myinfo.publicname;
}
protected void Setvalues()
{
informations myinfo = new informations()
{
publicname = "leo",
publictown = "london"
};
}
private string publicname { get; set; }
private string publictown { get; set; }
private class informations
{
public string publicname { get; set; }
public string publictown { get; set; }
}
由于
答案 0 :(得分:1)
如果您希望在不创建实例的情况下访问您的媒体资源,请使用static
关键字。
编辑:在您的示例中,您将替换
public string publicname { get; set; }
与
public static string publicname { get; set; }
允许您将字段读为
string myNewname = informations.publicname;
并使用
进行设置informations.publicname = "whatever";
当然,这意味着您的应用程序中只能有一个publicname实例 - 特别是在ASP.NET应用程序中,这可能不是您想要的!
答案 1 :(得分:1)
如果要访问创建的对象,则需要在创建后存储对它的引用。
看了你的样本,我可以为你提供以下变化:
protected void GetValues()
{
// Access to the public variable town.
string myNewtown = publictown;
string myNewName = publicname;
// or
string myNewtown = myinfo.publictown;
string myNewName = myinfo.publicname;
}
protected void Setvalues()
{
publicname = "leo";
publictown = "london";
}
// we store reference to internal object
informations myinfo = new informations();
// and delegate property access to its properties.
public string publicname
{
get{ return informations.publicname;}
set{ informations.publicname = value; }
}
public string publictown
{
get{ return informations.publictown;}
set{ informations.publictown = value; }
}
private class informations
{
public string publicname { get; set; }
public string publictown { get; set; }
}