在vb 6.0中的语法问题
代码:
Public Sub MRQMIN(ByVal X(), ByVal Y(), ByVal SIG(), ByVal NDATA, ByVal A(), ByVal MA, ByVal LISTA(), ByVal MFIT, ByVal COVAR(), ByVal ALPHA(), ByVal NCA, ByVal CHISQ, ByVal ALAMDA)
Dim ATRY(20), BETA(20), DA(20)
If ALAMDA < 0.0# Then
KK = MFIT + 1
~~~~~~~~~~~~~~~~~~~~~
句子:“KK = MFIT + 1”
中“KK” 是怎么定义的,类型是什么
这里KK 没有定义就直接使用,而且在vb 6.0中使用很正常,但放在.net中就报错了。
不太明白,请指导!!
问题点数:20、回复次数:10Top
1 楼brando_beat(Eの懒龙)回复于 2005-06-04 13:06:27 得分 3
这个需要说一下强制定义,
vb6支持不定义,直接可以使用,但是这样是有危害的,在代码维护等就会出现不知所云的现象。
vb.net支持强制定义,必须定义,才能引用。Top
2 楼moocow_wong(狂居士)回复于 2005-06-04 13:44:30 得分 3
这充分体现了VB.NET的严密性。
强制定义,提前向系统征求内存空间,对于程序员,不会出现变量名输错而没有找到错点的现象。Top
3 楼WhiteWizard(白魔法师)回复于 2005-06-04 13:47:15 得分 3
vb.net好像也可以不定义的说
不过要设置
vb2005更好
你定义了不使用
它会给你一个warningTop
4 楼henrysap(henry)回复于 2005-06-04 14:40:35 得分 2
vb6支持不定义,直接可以使用Top
5 楼zzmdegm(剑心)回复于 2005-06-04 15:51:34 得分 0
我想要把这些代码写在vb.net中来.那我应该这.net中用什么样子的类型来定义它呢.
也就是说:“KK = MFIT + 1”这句话中的"KK"中vb 6.0中是什么类型,我在.net中就对应用什么样的类型Top
6 楼brando_beat(Eの懒龙)回复于 2005-06-04 17:59:13 得分 4
这里还要说一下数据类型,
asp没有相应的数据类型,他的数据类型只有一种
而在asp.net中支持相应的数据类型,
所以根据你得代码
KK = MFIT + 1
不能判断相应的数据类型,你需要调试看看,另外,还要看MFIT 是什么数据类型,
基本的语法是:
如果MFIT 是整形的话
dim KK as integer
KK = MFIT + 1
如果单精度的话
Dim KK As Single
KK = MFIT + 1
Top
7 楼zzmdegm(剑心)回复于 2005-06-04 18:05:49 得分 0
to: brando_beat(Eの懒龙)
MFIT 是在Public Sub MRQMIN(ByVal X(), ByVal Y(), ByVal SIG(), ByVal NDATA, ByVal A(), ByVal MA, ByVal LISTA(), ByVal MFIT, ByVal COVAR(), ByVal ALPHA(), ByVal NCA, ByVal CHISQ, ByVal ALAMDA)
中的一个参数Top
8 楼zzmdegm(剑心)回复于 2005-06-05 09:56:09 得分 0
upTop
9 楼Ninputer(装配脑袋)回复于 2005-06-05 11:13:48 得分 5
这种最简单了,你在函数开头加上
Dim KK
不就完了吗。
PS.这函数一看定义就知道写得很烂,哪有带这么多参数的?Top
10 楼sagezk(SageZK)回复于 2005-06-05 15:23:23 得分 0
参数太多可以将相关的参数用结构(或类)打包,使用函数时只传递一个结构变量和几个其他的变量(逻辑上打包到结构或类中不合适的)即可,.NET中的事件处理方法就是这么解决的,而且在.NET Framework中已经形成了一个种标准。Top




