【问题标题】:C# Stuck with using Get SetC# 卡在使用 Get Set
【发布时间】:2012-10-10 18:44:15
【问题描述】:

按照在线教程制作了一个使用 Get 和 Set 和类的基本程序。我试图弄清楚如何从文本框中设置一个值,以便将其存储在我的“存储类”中,清除文本框中的数据,然后再次“获取”数据以显示在文本框中,这样就证明了如果有意义的话,我的第一个输入数据已正确设置。
所以我的表单有 3 个按钮,设置、清除、获取和 1 个文本框。 这是我的“存储类”的代码,

    namespace Pracitse{
class Stored
{        

    private string Colour;
    private string getColour(string colour)
    {
        string displayColour;
        displayColour = colour;
        return displayColour;
    }


    public string MyProperty 
    {
        get { return Colour; }
        set{ Colour = getColour (value) ;}
    }   
    }

这是我表单中的代码:

    private void setBtn_Click(object sender, EventArgs e){          
        Stored Details = new Stored();
        string setcolour;
        setcolour = Details.MyProperty;
        Details.MyProperty = colourBx.Text;             

    }

    private void getBtn_Click(object sender, EventArgs e)
    {
        Stored Details = new Stored();             
        string Displaycolour;
        Displaycolour = Details.MyProperty;
        colourBx.Text = (Displaycolour);                     
    }

    private void clrBtn_Click(object sender, EventArgs e)
    {            
        colourBx.Clear();            
    }       
}}

我使用过 google 并尝试关注其他 tuts,但我似乎无法弄清楚如何存储第一个输入的数据。 有什么帮助吗? 谢谢。

【问题讨论】:

    标签: c# class methods get set


    【解决方案1】:

    每次你做Stored details = new Stored();,你都有一个新的不同的Stored对象。

    你需要有一个共享

    Stored details = new Stored();
    
    private void setBtn_Click(object sender, EventArgs e){          
        details.MyProperty = colourBx.Text;             
    }
    
    private void getBtn_Click(object sender, EventArgs e)
    {
        string Displaycolour;
        Displaycolour = details.MyProperty;
        colourBx.Text = Displaycolour;
    }
    
    private void clrBtn_Click(object sender, EventArgs e)
    {            
        colourBx.Clear();            
    }    
    

    【讨论】:

    • 成功了!这些小事总是让我抓狂:P 干杯老兄
    【解决方案2】:

    您的问题是您正在单击处理程序中创建(实例化)一个新的、完全独立的 Stored 类型的对象。您的 Stored 类的 MyProperty 是一个实例属性,仅属于该对象的特定实例。

    您需要做的是在表单中创建一个单独的 Stored 对象作为类成员,并在两个处理程序中引用它,而不是创建新对象。

    换句话说,Oded 在我点击提交前两分钟所说的话!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2013-10-21
      • 2023-01-18
      • 2014-09-13
      • 2012-11-29
      相关资源
      最近更新 更多