我是一名C#编程新手。在使用表单构建应用程序时,我遇到了一个小问题。我将尽力以我的能力和经验来恰当地解释它。问题出现在我试图处理由在Form1中实例化的Class1引起的异常时。假设我在Class1中有一个函数"public int Calc(int a, int b)"。在Form1中,我实例化了这个类来调用其"Calc"函数。如果我想要向用户展示一个错误信息(例如:除以零),我必须将函数调用放入try/catch语句块中:
//Form1:
问题是,如何将消息(DivideByZeroException e)传递到我的Form1中,以便能够处理并发送消息。我不想在Form1中创建一些静态函数,只是为了从Class1中访问MessageBox类,因为这在正确的OOP功能和Class1的可重用性方面没有意义。我已经阅读了关于事件和委托的文章(我理解它们是类似于C ++的简单函数指针),但这有点令人困惑,我无法将此技术应用于我的代码中。您能否提供一个简单的例子,指引我走向正确的方向。
谢谢各位。
Cembo
//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
}
我认为这个例子不符合正确的面向对象编程技术,因此我决定直接在Class1中添加try/catch元素:
//Class1:
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