当前位置:  开发笔记 > 编程语言 > 正文

在这个VB6代码中,"Shift:="是什么意思?

如何解决《在这个VB6代码中,"Shift:="是什么意思?》经验,为你挑选了2个好方法。

我在VB6应用程序中遇到了以下行.

mobjParentWrkBk.ExcelWorkBook.Application.Selection.Insert Shift:=xlToRight

不幸的是谷歌和其他搜索引擎并不是很有用,因为它们似乎省略了:=部分.

什么是C#等价物?



1> John Rudy..:

这是可选命名参数的Visual Basic语法.该Insert函数有一个名为的参数Shift,正在指定.

据我所知,C#没有可选命名参数的等价物.相反,您需要调用该Insert方法,指定Type.Missing除以外的所有参数Shift.

另请参阅以下StackOverflow问题:VB.NET:=运算符

更新(2008-10-29):

C#4.0设置为引入可选和命名参数.在codebetter.com上查看此博客文章.



2> onedaywhen..:

只是为了澄清约翰鲁迪的回应.

sytax是可选的(小'o'),这意味着你不必使用它.根据我的经验,大多数VB6编码器不使用语法,而是更喜欢常规的"未命名"参数.

如果确实选择使用它,则必须命名子过程调用中的所有后续参数.

无论是否使用VBA关键字Optional(大写"O")声明相应的参数,都可以对所有参数使用指定的参数语法.例如,考虑这个(略微愚蠢的)VBA函数,它有两个参数,一个是必需的,一个是Optional:

Private Function TimesTen( _
    ByVal Value As Long, _
    Optional ByVal Factor As Long = 10 _
) As Long
  TimesTen = Value * Factor
End Function

在VBA中,我可以使用命名参数为所需参数调用它(Optional在VBA中可以简单地省略参数,与C#.NET不同,Type.Missing必须使用所有省略的Optional参数):

  MsgBox TimesTen(Value:=9)

如果我想用'错误'顺序中的参数调用它(为什么??)我可以使用命名参数实现这一点:

  MsgBox TimesTen(Factor:=11, Value:=9)

在命名的参数调用之后尝试使用常规的"未命名"参数调用会导致编译错误:

  MsgBox TimesTen(Value:=9, 11)

那么,如果VB6编码器很少使用VBA编码器为什么使用命名参数,即使他们使用基本相同的语言?我认为这是因为MS Office应用程序的宏录制器生成的VBA倾向于(总是?)生成命名参数,许多VBA编码器以这种方式学习编程.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有