- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想要一些关于如何在简单的 C# Windows 窗体应用程序中分离 UI 和业务逻辑的建议。
让我们举个例子:
UI 由一个简单的文本框和一个按钮组成。用户输入 0 到 9 之间的数字并单击按钮。该程序应将数字加 10 并使用该值更新文本框。
业务逻辑部分应该不知道 UI。如何做到这一点?
这是空的流程类(业务逻辑):
namespace addTen
{
class Process
{
public int AddTen(int num)
{
return num + 10;
}
}
}
要求是:
我只是不知道如何将这两者联系起来。
最佳答案
首先,您需要更改您的类(class)名称。 “Process”是类库中类的名称,可能会使阅读您的代码的任何人感到困惑。
让我们假设,对于这个答案的其余部分,您将类名更改为 MyProcessor(仍然是一个糟糕的名称,但不是一个众所周知的、经常使用的类。)
此外,您还缺少用于检查以确保用户输入确实是 0 到 9 之间的数字的代码。这在表单代码而不是类代码中是合适的。
在 Visual Studio 中,双击按钮以创建按钮单击事件处理程序,如下所示:
protected void button1_Click(object sender, EventArgs e)
{
}
在事件处理程序中,添加如下代码:
protected void button1_Click(object sender, EventArgs e)
{
int safelyConvertedValue = -1;
if(!System.Int32.TryParse(textBox1.Text, out safelyConvertedValue))
{
// The input is not a valid Integer value at all.
MessageBox.Show("You need to enter a number between 1 an 9");
// Abort processing.
return;
}
// If you made it this far, the TryParse function should have set the value of the
// the variable named safelyConvertedValue to the value entered in the TextBox.
// However, it may still be out of the allowable range of 0-9)
if(safelyConvertedValue < 0 || safelyConvertedValue > 9)
{
// The input is not within the specified range.
MessageBox.Show("You need to enter a number between 1 an 9");
// Abort processing.
return;
}
MyProcessor p = new MyProcessor();
textBox1.Text = p.AddTen(safelyConvertedValue).ToString();
}
正确设置访问修饰符的类应该如下所示:
namespace addTen
{
public class MyProcessor
{
public int AddTen(int num)
{
return num + 10;
}
}
}
关于C# Windows 窗体应用程序 : Separate GUI from Business Logic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547438/
我知道使用 https://www.skype.com/en/developer/create-contactme-buttons/ 添加 Skype 链接很容易.但是可以为 SkypeForBusi
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 上个月关闭。
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 已关闭8
我们使用一个持久的 Skype for Business 聊天室,并用它来广播每天在特定项目上完成的工作。我想在每个工作日早上启动 Skype for Business 并将其打开到这个聊天室。我想使
我在本地和远程(通过 VPN)与 GUI 应用程序交互。当我在本地使用它时,大多数操作发生得非常快,而且我的 sikuli 脚本执行得很好。但是,当我远程使用它时,操作需要更长的时间才能完成。 也就是
如何在业务催化剂中编辑模板?我可以从用户界面执行此操作还是需要 Dreamweaver 或其他一些产品? 我用谷歌搜索,但找不到答案...... 当我登录时,在网站选项卡下,有站点编辑器、网页、博客和
我刚开始使用 Google My Business API,并且能够执行获取操作只是为了验证我的 Oauth 设置是否正确。现在我想使用 GMB 添加位置 API 的 post 方法添加一个位置,但在
我们在我们的应用程序中使用 Skype for Business Web SDK 来显示联系人的存在。 当联系人是用户组织内部的某个人(因此与用户在同一个 AD 实例)时,我们在联系人的状态 onCh
有没有办法使用 GMB API 获取评论的链接? 最接近我需要的是这个: https://www.google.com/maps/contrib/113400145807499011881/place
{ "error": { "code": 429, "message": "Quota exceeded for quota metric'Requests' and limit 'Requests
有很多为 Skype 创建 HTML 链接的解决方案(href="skype:username"),但我找不到任何适用于 Skype for Business 的解决方案。 (引用=“啜饮: 有关如何
对于给定的 n 态 busy beaver game , 是 busy beaver function是唯一的,还是可能有多个功能具有相同的最高分?也许这两种方式都没有得到证明? 最佳答案 是的,是的
也许我在当前的 Google MyBusiness API 迁移中遗漏了一些东西。 我们有在 Google My Business API 上运行的脚本,该 API 将于 2022 年 4 月结束,取
在 Business Objects XI Web Intelligence 中,Rank 函数返回密集结果。例如,当按“金额”排名时,我只想返回前十名记录。然而,三项记录在“金额”上并列第五。结果总
我正在按照本指南 ( https://msdn.microsoft.com/en-us/skype/ucwa/authenticationusingazuread ) 尝试和验证并创建 Skype 应
由于我一直在努力学习 Angular,所以这几天我一直在与这个 ng-busy 作斗争。 我有一个 plunker 页面,它可以工作,但不是我想要的。该页面正在显示加载动画,但我想让它在按钮内显示加载
我正在运行关于 svn 的 java 代码,它是这样的 http://code.google.com/p/justcodingforfun/source/browse/MagicMissile/src
请帮助我理解。我是一名技术专家,并试图确定在使用WhatsApp Cloud API执行分配给我的业务任务时是否会有任何限制。。在WhatsApp Business Account文档中,我看到了许多
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我正在尝试为我的大型 ASP.NET MVC 应用程序创建业务和数据层。因为这是我第一次尝试这种规模的项目,所以我正在阅读一些书籍,并努力小心地将事情正确地分开。通常我的应用程序混合了业务逻辑和数据访
我是一名优秀的程序员,十分优秀!