【发布时间】:2016-01-13 07:11:14
【问题描述】:
我目前正在从 Vb6 转换为 C#,其中允许使用以下 Vb6 代码:
Private Property Let gUnit(Optional bResolve As Boolean, aNoseHi)
gNoseLo(Optional parameter) = 0
End Property
不允许:
void Test()
{
gNoseLo(false) = 0 //error occurs here
}
gNoseLo 已在 VB6 中定义为 Private Property Get gNoseLo(Optional bResolve As Boolean)。我不能在 C# 中使用公共属性方法,因为有参数所以我使用了一种方法。重新编码gNoseLo 以接受值分配并防止错误的正确方法是什么?
【问题讨论】:
-
将值作为额外参数传递?
-
你真的需要这个参数吗?它是干什么用的?函数有什么作用?也许您应该在翻译代码时考虑重新设计?
-
原来的 VB6 一定不能这样,因为那甚至不是有效的语法。