【发布时间】:2011-07-31 17:37:21
【问题描述】:
我是 C# 编程的初学者。我在使用表单构建应用程序时遇到了小问题。我会在我的能力和经验范围内尽量解释清楚。当我尝试处理由 Form1 中实例化的 Class1 引起的异常时出现问题。假设我在 Class1 中有函数“public int Calc(int a, int b)”。在 Form1 中,我已经实例化了这个类来调用它的“Calc”函数。如果我想发送错误消息(例如:除以零),我必须将函数调用包装到 try/catch 元素中:
//Form1:
Class1 C1 = new Class1();
int a = 5;
int b = 0;
int c = 0;
try{
c = C1.Calc(a,b)
}
catch(DivideByZeroException e)
{
// some error handling code
}
...我认为这个示例不是正确的 OOP 技术,所以我不得不决定将 try/catch 元素直接放入 Class1:
//类1:
public int Calc(int a, int b)
{
int c = 0;
try{
c = a/b;
}
catch(DivideByZeroException e)
{
// .........
}
return c;
}
...问题是,我怎样才能将消息 (DivideByZeroException e) 输入我的 Form1 以便能够处理它并发送消息。我不想在 Form1 中创建一些静态函数只是为了从 Class1 到达其中的 MessageBox 类,因为它在正确的 OOP 功能和 Class1 的可重用性方面没有意义。我已经阅读了有关事件和委托的内容(我理解这是指向类似于 C++ 的函数的简单指针),但它有点令人困惑,我未能将这种技术应用到我的代码中。请你写一个简单的例子来指引我正确的方向。
谢谢大家
Cembo
【问题讨论】:
标签: c# winforms exception-handling