以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  局部变量问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5446)

--  作者:xl
--  发布时间:2009/12/12 13:57:00
--  局部变量问题

查了FOXTABLE帮助,始终找不到"局部变量"提法.不知FOXTABLE有无局部变量说法?比如下列代码由两大模块组成,若能在填充数据模块之前申明是局部变量,之后告知是局部变量结束;同理, 计算模块之前申明是局部变量,之后告知是局部变量结束.这样就方便多了,代码中的变量”dr”     就不用改写了,无需将第二个变量设为”dr1”.在实际设计中会省去许多记忆变量的麻烦.这个问题应是很普遍的问题,不知大家目前是怎样解决它的?

 

填充数据模块

DataTables("过渡表").DataRows.Clear()
Tables("
过渡表").Redraw = False
Dim
dt As Table = Tables("过渡表")
Dim Count As Integer = Tables("
课程表").Count
Dim
dr As DataRow
…………….
Tables("
过渡表").Redraw = True

 

‘’计算模块

Dim t As New DataTableBuilder("temp") \'创建临时表
………….

For Each dr As DataRow In DataTables("统计").DataRows
    dr("
出现次数") = DataTables("temp").Compute("Count(字符)", "字符 = \'" & dr("字符") & "\'")
Next


--  作者:lxl
--  发布时间:2009/12/12 14:17:00
--  
最好做到见名知意:
drFill   drCalc
这样可读性能好一点,还不怕重复。

至于变量的生命周期的:
Dim i As Integer
For i As Integer = 0 TO 10
Next
是不允许的


For i As Integer = 0 TO 10
Next
For i As Integer = 0 TO 10
Next
是允许的。






--  作者:狐狸爸爸
--  发布时间:2009/12/13 9:26:00
--  
呵呵,其实变量的名称却是应该是有意义的,特别是代码很长的时候。
foxtable中的示例代码很短,所以都是dr1、dr2这样的了,后果是养成了很多用户不良的习惯,我也意识到这个问题了。

关于变量的作用范围,和vb.net完全一样的。
--  作者:czy
--  发布时间:2009/12/13 10:25:00
--  
呵,这样的习惯,老六是罪魁。
俺以后用中文,意义似乎更大图片点击可在新窗口打开查看
--  作者:程兴刚
--  发布时间:2009/12/13 13:04:00
--  
以下是引用czy在2009-12-13 10:25:00的发言:
呵,这样的习惯,老六是罪魁。
俺以后用中文,意义似乎更大图片点击可在新窗口打开查看


   就是,我以前就是有中文,现在被帮助文件给染色了,因为长期复制修改代码的习惯!

      


--  作者:abcdzabcdz
--  发布时间:2009/12/14 11:35:00
--  
以下是引用czy在2009-12-13 10:25:00的发言:
呵,这样的习惯,老六是罪魁。
俺以后用中文,意义似乎更大图片点击可在新窗口打开查看

举一反三一下:
例1:
dim h as integer =0
DataTables("课时名单").DataRows.Clear()
For Each 课程表的行 As DataRow In DataTables("课程表").DataRows
    for Each 课程表的列 as Datacol in DataTables("课程表").Datacols
        if 课程表的行(课程表的列) isnot nothing  then    
..........
例2:
dim h as integer =0
DataTables("课时名单").DataRows.Clear()
For Each 课程表的  行 As DataRow In DataTables("课程表").DataRows
    for Each 课程表的  列 as Datacol in DataTables("课程表").Datacols
        if 课程表的  行(课程表的  列) isnot nothing  then                                                  

.............

感觉怪怪的,是否需加特别标示为变量?如%课程表的行%
--  作者:狐狸爸爸
--  发布时间:2009/12/14 12:00:00
--  
用中文,看起来更乱。

“课程表的行”不如拼音缩写:kbh
--  作者:xl
--  发布时间:2009/12/26 17:25:00
--  
今天遇到一个需要将7个过程连接起来的设计,每个过程都没有问题,但合在一起不是这里有问题,就是那里有问题,改了这处忘了那处,到处都是问题。故再次建议增加“过程1”,“过程2”,。。。。“过程n”中使用的“全局变量”和“局部变量”,以便各个过程的变量互不干扰。
--  作者:xl
--  发布时间:2009/12/26 17:58:00
--  
我采用内部函数试试。
--  作者:xl
--  发布时间:2009/12/26 18:40:00
--  
测试成功了,解决过程变量问题最好的方法是内部函数。