当前位置: 代码迷 >> VB Dotnet >> 请问个对象实例化传值和错误捕获的有关问题
  详细解决方案

请问个对象实例化传值和错误捕获的有关问题

热度:182   发布时间:2016-04-25 01:59:33.0
请教个对象实例化传值和异常捕获的问题
刚刚学会编程不久,有些问题一直弄不明白,又没有这方面的教程。实在头疼,请高手赐教,先谢过了!
当然,如果觉得我问的问题白痴或者表达太渣的话也可以骂,但麻烦给指条路,给个思路就行。。实在是没办法了
流程是这样的
一个解决方案中有两个项目,一个是DLL类库,一个是主程序
DLL类库里包含一些功能类和窗口,例如 类A,窗口B,窗口C。在A中有一个function OpenInput,功能是打开窗口B,然后当窗口B关闭后再打开窗口C,这中间会有个全局变量在窗口B的操作中被改变,当窗口C打开时要用到。
主程序直接引用DLL
在主程序中实例化DLL中的一个类,例如 dim S as new DLL.A
之后给实例S传几个值,然后就可以直接调用封装的函数实现功能。
例如 s.OpenInput 执行后DLL里直接执行某些操作后打开一个窗口。
上面这些实现都很简单,这时候问题来了
在DLL项目中有些全局变量,就是写在模块中的公共变量,在整个DLL项目中的所有类都可以直接使用,前面说的给S传值实际上就是要给这些全局变量赋值,这个实在没想出什么好方法。

我能想到的方法就是在类A中定义一些与全局变量相对应的变量,再定义一个初始化的sub,在实例化并传值后调用,这个初始化sub的功能就是把传过来的值再赋给全局变量。不知道还有没有更好的方法,这要感觉有点麻烦呢。

另外就是异常捕获问题,在DLL中我都写了throw new exception,正常情况下在主程序中都能正常接住,但有的地方没有写try的时候主程序就不能正常捕获异常。
例如在主程序中写
try
   S.OpenInput
catch ex as exception
   msgbox(ex.message)
end try
如果OpenInput中某些没有try的地方发生了异常,理想中主程序应该会接住的,但实际上主程序直接崩溃了。。而调试的时候又可以接住,这问题折磨的要疯了。。
------解决思路----------------------
可以引用另一个项目的命名空间,在另个项目中引用。
  相关解决方案