有关创建课程的问题&方法以及从表单访问这些方法

时间:2015-02-20 08:20:52

标签: c# winforms class methods

我相信你们这里有很多人会觉得这样做很简单,所以对一些事情的解释会很酷。这是一个intro cs类的赋值,所以最简单的解决方案就足够了。目标是创建一个令牌机器类和其中的方法。然后在Windows窗体应用程序中访问这些方法。表单应用程序有2个文本框,一个用于季度数,另一个用于令牌数和2个按钮。第一个是获取令牌按钮,它将向季度值添加一个并从令牌值中减去一个。第二个是重置按钮,它将四分之一的值设置为0,将标记设置为100.

       using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;

 namespace TokenMachine
 {
     public partial class Form1 : Form
     {

         // class level reference to a token machine
         private TokenMachine tm;
         public Form1()
         {
             // create a token machine object
             InitializeComponent();
             tm = new TokenMachine();
             tm.Reset();

此时我创建了TokenMachine类,没有问题              }

         private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
         {

         }

         private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
         {

         }

         private void buttonGetToken_Click(object sender, EventArgs e)
         {

         }

         private void button2_Click(object sender, EventArgs e)

         {

         }
    }
 }

创建课程后,我感到有些困惑。我将发布我的UML类图以进一步清晰。

     ![TokenMachine UML Diagram][1]

这是我到目前为止所得到的。

这不是一个答案,我只是不知道在哪里发布其余的。我显然有一些格式问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

        namespace TokenMachine
{
    class TokenMachine
    {

        private int numTokens = 0;
        private int numQuarters = 0;

现在我创建一个构造函数来初始化TokenMachien的数据成员

 public TokenMachine()
{
    numTokens = 100;
    numQuarters = 0;
} 

现在为GetToken方法。我在这里的困惑是这个方法到底应该是什么样子。同样,此方法将添加1个季度并减去一个令牌。

public int? void? GetToken(are there parameters required for this type of method?)
{
}

接下来我们有CountTokens方法,它返回机器中的标记数。上市 ???? CountTokens(??,??){}

CountQuarters方法,它返回机器中的四分之一。

public ???? CountQuarters(??, ??)
{
}

最后使用Reset方法删除所有四分之一并用令牌填充机器。对于本课程,我们假设该机器拥有100个令牌。

public ???? Reset(??, ??)?????????
{
????????????????????????????
}

这是我第一次创建一个类及其中的方法。从我的表单访问方法似乎并没有造成问题,因为我之前已经这样做了。 编写这些方法的正确格式是什么。即GetToken()CountTokens()CountQuarters(),主要是重置()

1 个答案:

答案 0 :(得分:0)

public void GetToken()
{
    numQuarters++; // ++ 'is increase by one', guess what -- will do
    numTokens--;
}
public int CountTokens()
{
    return numTokens;
}
public void Reset()
{
    numQuarters = 0;
    numTokens = 100;
}

仅供参考void表示不从此方法返回值,将void替换为类型int, string, double, Object, Form将从方法返回此类型。

     private void buttonGetToken_Click(object sender, EventArgs e)
     {
         tm.GetToken();
     }

     private void button2_Click(object sender, EventArgs e)

     {
         TheNameOfYuorTextBox.Text = tm.CountTokens().ToString();
     }

编辑:

您建议的修改。调用tm.GetTokens()tm.GetQuaters()而不指定返回任何值的值是没有意义的。 并创建一个新的TokenMachine,然后调用'重置'如果TokenMachine构造函数仍然设置了值,那就毫无意义了。

要使用断点,请单击边距以显示红点,在其中一个按钮单击方法中,然后启动并单击按钮。整个程序将暂停在那一行代码上(但不会执行该行代码),然后您可以检查变量的值,右键单击并说出QuickWatch或将鼠标悬停在变量上。