vb.net中过程的参数默认为ByVal还是 ByRef

jhl_000101100011 2009-02-02 07:43:39
vb.net中过程的参数默认为ByVal还是 ByRef ?
是不是在原来的VB中默认为ByVal
集成到.net中以后就变为ByRef了。。。小弟上学时学的是C# 现在实习有个项目要用VB.net做 所以学习下
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-02-03
  • 打赏
  • 举报
回复
ByVal
ycfbhsk 2009-02-03
  • 打赏
  • 举报
回复
建议不使用参数默认(或者根本不支持),应该明确ByVal还是 ByRef,否则对可读性带来很大的影响。
Jeff20040819 2009-02-03
  • 打赏
  • 举报
回复
UP
LSSQXT 2009-02-02
  • 打赏
  • 举报
回复
默认传递方式就是ByVal

'============================='
' 单位换算控件WeiQi.Control '
'作者:ChuYa.Studio::fanyugod '
' QQ:11330934 '
' Email::fanyugod@163.com '
' VB.NET '
'============================='
此控件是用于单位换算的控件
控件内置了常用的单位,可以扩展和删除


1 属性
1.1 只读属性
1.1.1 AuthorDeclare
   类型:String    
   说明:返回作者申明和版本信息
1.2 设置属性
1.2.1 TheMainAddress
   类型:String
   说明:设置默认单位文件位置,如果该位置没有文件或者文件错误,控件将在启动时自动加载代码的单位
1.2.2 AutoClip
   类型:Boolean
   说明:是否在单位成功换算后将结果保存入剪贴板(此参数不影响通过函数接口转换单位,函数接口永不会将结果放入剪贴板)
2 接口
2.1 ShowMeControl
类型:无
说明:启动单位设置窗口
2.2 TranUnit(ByVal SourceNumber As Double, ByVal SourceUnit As String, ByVal AimUnit As String, ByRef AimNumber As Double, ByRef ErrMessage As String)
类型: Boolean
说明:将Sourcenumber数字,其单位为(SourceUnit),转换成AimUnit单位,结果放入AimNumber,如果出现错误,则ErrMessage文说明

3 单位约定
3.1 单位分类
单位分为两类(基本单位和组合单位)
基本单位:
基本单位分为都种类,可以转换的在一类,并设置基准单位,其他该种类单位必须设置与基准单位的转换比例,基本单位可以任意字符,
但不能包括 乘法、除法、乘方字符(这三个字符可以自由设置!)
组合单位:
组合单位有基本单位组合或特殊单位(非基本单位组合),也分门别类,能转换的放到一类!组合单位有两种表示:内部表示和外部表示
内部表示是基本单位的组合,外部表示是单位的外部简写(注意:外部简写不能包含乘法、除法、乘方字符(这三个字符可以自由设置!))
每种组合单位设置一个基准单位,其他该类单位必须设置与基准单位的转换比例!
3.1.1 温度单位的特殊规定:
应为温度单位的特殊性,这个基本单位是特别处理的,请不要删除控件内部基本单位的温度单位!
3.2 单位组成
单位必须是String,由乘法符号、除法符号、乘方符号分隔各个不同的单位(只能是一个字符)。
除法符号在同一单位只能出现一次,并且符号两边必须有字符(可以用1简化)。
乘法符号用于连接各个子单位,每个子单位可以跟一个乘方符号和一个数值,如果出现乘方符号必须后跟数值
注意:最简单位(基本单位和组合单位的外符号)不能出现以上三个字符!

4 如果还有疑问请告诉我!

'============================='
' 围棋控件WeiQi.Control '
'作者:ChuYa.Studio::fanyugod '
' QQ:11330934 '
' Email::fanyugod@163.com '
' VB.NET '
'============================='
此控件是19x19标准围棋控件,请在鼠标事件加入相应代码
1 属性
1.1 只读属性
1.1.1 AuthorDeclare
   类型:String    
   说明:返回作者申明和版本信息
1.1.2 NextWhite
   类型:Boolean    
   说明:返回下一步棋信息(如果下步棋该白棋走为真)
1.1.3 WhiteTiNumber
   类型:integer   
   说明:返回白棋提到的黑棋数量
1.1.4 BlackTiNumber
   类型:integer    
   说明:返回黑棋提掉的白棋数量
1.1.5 GlobeErrMessage
   类型:String    
   说明:返回最后一个错误的解释   
1.1.6 Record_Finger
   类型:integer    
   说明:返回当前棋谱指针(也是当前棋谱显示长度)
1.1.7 Record_LastFinger
   类型:integer    
   说明:返回棋谱的最长纪录(如果没有回退,此数值将与Record_Finger相同)
1.1.8 Record_Long
   类型:integer    
   说明:返回棋谱的长度
   注意:只是棋谱数组的长度!不是已经下了的棋谱长度!其实这个属性没有什么用处,因为你无法手动增加它! 
1.1.9 Record_Hand(ByVal i As Integer)
   类型:byte    
   说明:返回第i步棋谱是黑棋还是白棋
   注意:其实除了让子棋,奇数就是黑棋,偶数就是白棋。参见后面的常数表
1.1.10 Record_X(ByVal i As Integer)
   类型:byte    
   说明:返回第i步棋所在的横坐标(应该是:1-19,写的时间有点长了>_1.1.11 Record_Y(ByVal i As Integer)
   类型:byte    
   说明:返回第i步棋所在的纵坐标(应该是:1-19,写的时间有点长了>_1.1.12 Record_Dead(ByVal i As Integer)
   类型:Boolean    
   说明:返回第i步是的死棋信息(如果此步棋提了对方的棋为真)
1.1.13 Record_Ti(ByVal i As Integer)
   类型:byte    
   说明:返回第i步是的提子信息(如果此步棋提了对方的棋,纪录是提了什么方向的棋。你不必管它的含义!)
   注意:如果你要保存棋谱,请纪录5个Record_(i as integer)属性!在读取棋谱时必须使用他们!
1.1.14 ReturnStatus
   类型:byte    
   说明:返回棋盘状态(参见常数表,分别为比赛状态,打谱状态和编辑状态)
   注意:状态将影响到单击鼠标左键会作出的反应
      比赛状态:如果是轮到matchwhite所指的白棋或黑棋时,左键才是走棋
      打谱状态:按照预先装入的棋谱反应,左键只是前进一步
      编辑状态:单击左键纪录一步棋,黑白棋轮流走!

1.2 可设置属性
1.2.1 QiPanBack
    类型:Byte    
    说明:棋盘背景样式
       0:使用纯色作为棋盘背景,纯色由BackGroudColor提供
       一下使用图片,请务必设置BackPictureImage属性
       1:居
       2:平铺
       3:拉伸
       4:放大
       其他数值报错!
1.2.2 BackPictureImage
   类型:Bitmap    
   说明:背景图片,只有Qipanback为1,2,3,4数值时才有用
1.2.3 ShowNumber
   类型:Boolean    
   说明:是否显示每步棋的手数
1.2.4 ShowUpHand
   类型:boolean    
   说明:是否使用菱形框标示出上一步的位置,默认为True
1.2.5 BackGroudColor
   类型:Color   
   说明:棋盘的背景颜色,只有QiPanBack为0时才有用!  
1.2.6 PenDrawQiPan
   类型:pen    
   说明:画棋盘线的笔,可以设置宽度,颜色和线形……,只要是pen能设置的东西都行。
1.2.7 PenDrawOther
   类型:pen    
   说明:画各种显示线条,就是上一步提示,寻找手数,当前位置的画笔
1.2.8 StarBrush
   类型:SolidBrush    
   说明:画星位的笔刷
1.2.9 WordFont
   类型:font    
   说明:文字字体,包括手数和边框数值
1.2.10 MatchWhite
    类型:boolean    
    说明:点击左键走白棋还是黑棋,true为白棋,只有在比赛状态时才有用
1.2.11 WarningNumber
    类型:integer    
    说明:限制数量,如果回退超过这个数值,再走棋会提问!默认数值为5
1.2.12 WhiteIcon
    类型:icon    
    说明:显示的白棋图标,只能是图标
1.2.13 BlackIcon
    类型:icon    
    说明:显示的白棋图标,只能是图标        

2 接口
2.1 FindShouNumber(ByVal i As Integer)
   返回值:byte
   说明:寻找第i手棋,找到后会在棋盘上用方框显示出来直到点击了鼠标的左键,返回数值见常数表
2.2 TranslateErrCodeToExplain(ByVal code As Byte)
   返回值: String
说明:如名字所说……,返回一个错误代码的解释
2.3 UpDataBack
   返回值:无
说明:更新棋盘
2.4 BackOneStep
   返回值:boolean
说明:回退一步,真值成功,假值出现错误,通过GlobeErrMessage属性能得到错误信息,一般是回退到底的错误!
2.5 SetQiPanInit(ByRef QiPan(,) As Byte)
   返回值:boolean
说明:将QiPan(18,18)数组复制到棋盘去,这个函数只能在棋谱没有纪录的时候使用,否则回出错,会设置GlobeErrMessage
注意:如果数组没有19,19个大会报错,超过的部分将忽略!其数值只能是0,WHITE,BLACK。(参见参数表)
   用于让子棋,在棋开始前在棋盘上摆棋。
2.6 GoStep(ByVal x As Byte, ByVal y As Byte)
   返回值:boolean
说明:走一步棋接口,真是成功,假是出错(比如不能立即回填被提一子),会设置GlobeErrMessage
   如果是虚手请输入虚手常数
注意:x 为横坐标,y为纵坐标,只能是1-19数值,注意,此函数只能在棋盘状态为非打谱状态下才有用!
   如果用在比赛状态,本函数不检查走棋的顺序!
2.7 SetStauts(ByVal i As Byte, [ByRef Hand() As Byte] = Nothing, [ByRef ix() As Byte] = Nothing, [ByRef iy() As Byte] = Nothing, [ByRef dead()] As Boolean = Nothing, [ByRef ReTi()] As Byte = Nothing)
   返回值:boolean
说明:设置棋盘状态,真是成功,假是出错,会设置GlobeErrMessage
   i为状态常数(参见常数表,如果输入非常数表数值会出错!)
   其他参数只在i设置为DAPU时有用!后续5个数组的长度必须相等并大于0,否则出错!
   这5个参数是棋谱必要信息,与5个Record_(i as integer)属性相对应!如果你要保存棋谱,请务必注意!
注意:此函数会重置棋谱和棋盘!所有信息均将丢失,并且本函数不会发出任何提问!请一定要注意!!!!
   
3 相关常数
3.1 棋谱常数
   Const XUSHOU As Byte = 21 '虚手
Const BLACK As Byte = 111 '黑棋
Const WHITE As Byte = 100 '白棋
3.2 状态常数
   Const MATHING As Byte = 11 ' 比赛状态
Const DAPU As Byte = 22 ' 打谱状态
Const WRITEING As Byte = 33 '编辑状态

4 外部事件
  没有增加特殊的外部事件,当单击鼠标时,先进行棋盘操作,在引发OnMouseUp事件!主要的编程接口全在这个事件
  注意,当你处理鼠标事件时,整个棋谱已经完成更新和显示等一切工作或因为错误或限制没有对棋谱进行处理,
  你可以对比单击鼠标前的Record_Finger属性得到棋谱是否改变(也就是是否成果走棋的信息!)
  对比事件返回的按键属性和棋谱状态属性确定是那种事件发生(是走了一步棋,还是回退了一步,还是做了一步虚手,还是前进了一步……)
 
5 本说明到此结束,如有疑问可以联系我,联系方式见最上!
    

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧