获取对类的书面属性的访问权限

时间:2009-10-27 10:15:47

标签: c# asp.net

我还没有在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; }
}

由于

2 个答案:

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