【问题标题】:how to use a function in the form in a class c#如何在类c#中使用表单中的函数
【发布时间】:2013-11-14 23:41:23
【问题描述】:

我试图让一个表单中的函数在一个类中工作。

public void Say(string Text)
    {
        lalSay.Text = Text;
    }

这是表单中的代码。

Say("Darn i dont have" + ItemCost + "Bits.");
                          //^this is a string in my program

这是在课堂上。

我就是找不到什么问题??

它不会让我在课堂上使用该功能。

【问题讨论】:

  • 如果 Say() 在表单中,不同的类不会知道 Say() 是什么。要在类中使用 Say() 需要您将对表单的引用传递到类中,以便您可以针对该表单的实例调用 Say()。另一种方法是让类引发表单侦听的自定义事件。然后,当收到该事件时,Form 可以使用请求的字符串直接调用 Say()。
  • 您收到什么错误?

标签: c# function class label


【解决方案1】:
Say(Darn i dont have" + ItemCost + "Bits.);

您的论点不是字符串。像这样使用它

Say("Darn i dont have" + ItemCost + "Bits.");
//   ^ String one         ^ variable  ^ string two

"some text" 这样的代码被视为字符串。

【讨论】:

  • @MahchinLizard:那么你应该说明问题是什么。
  • @MahchinLizard 难道你没有在ItemCost 上加上ToString()ItemCost是什么类型的?
  • 它是程序/游戏中的一个字符串。
【解决方案2】:

您的问题非常缺乏细节,但也许这是一个开始的地方。

如果你不能“使用类中的函数”,你是这样消费的吗?

public class Form1:Form{
    public void Say(string Text)
    {
        lalSay.Text = Text;
    }
}

public class AnotherClass{
    public void ConsumingMethod()
    {
        var say = new Form1();
        say.Say("Darn i dont have" + ItemCost + "Bits.");
    }   
}

编辑: 在另一个类中使用来自 Form 类的方法是糟糕的代码。您应该将业务逻辑放在自己的类中,并让 GUI 层使用它。将您的 Say 方法移动到支持类是一个更好的主意,而不是从另一个类的表单中调用它。

【讨论】:

  • 我试图让一个表单中的函数在一个类中工作。
  • @MahchinLizard 让我知道这些编辑是否有意义。
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
相关资源
最近更新 更多