我知道可以传递 aFunction
或 a Sub
usingAddressOf
来传递 a Delegate
,就像在ThreadStart
定义中一样。
Dim oThStart as new System.Threading.Thread.ThreadStart(AddressOf MySub)
现在我有了这个程序,我在其中一遍又一遍地做同样的处理,但是对同一个对象的不同属性。这是我拥有的代码的一部分。我只展示了两次迭代,但总共有九次,还有其他处理我还没有包括在内,所以它会变得更大。
If _oInfoRefBase.InfoStr1Column = "" Then
_oInfoRefBase.InfoStr1Column = oColumn.ColumnName
GetHeader(ColInfoStr1, _oInfoTable.NomTable, oColumn.ColumnName)
_oInfoRefBase.InfoStr1Numeric = boolIsNumeric
_oInfoRefBase.InfoStr1Float = boolIsFloat
_oInfoRefBase.InfoDefaultStr1 = GetDefault(ColInfoStr1, _oInfoTable.NomTable, oColumn.ColumnName)
ElseIf _oInfoRefBase.InfoStr2Column = "" Then
_oInfoRefBase.InfoStr2Column = oColumn.ColumnName
GetHeader(ColInfoStr2, _oInfoTable.NomTable, oColumn.ColumnName)
_oInfoRefBase.InfoStr2Numeric = boolIsNumeric
_oInfoRefBase.InfoStr2Float = boolIsFloat
_oInfoRefBase.InfoDefaultStr2 = GetDefault(ColInfoStr2, _oInfoTable.NomTable, oColumn.ColumnName)
End If
我想要定义一个新函数GetOtherInfo()
,我可以调用它来填充我想要的属性,这取决于迭代。就像是
GetOtherInfo(_oInfoRefBase.InfoStr1Numeric,_oInfoRefBase.InfoStr1Float,_oInfoRefBase.InfoStr1NotNull,boolIsNumeric,boolIsFloat,ColInfoStr1,_oInfoTable.NomTable, oColumn.ColumnName)
或者
GetOtherInfo(_oInfoRefBase.InfoStr2Numeric,_oInfoRefBase.InfoStr2Float,_oInfoRefBase.InfoStr2NotNull,boolIsNumeric,boolIsFloat,ColInfoStr2,_oInfoTable.NomTable, oColumn.ColumnName)
等等。我知道这种语法不正确,因为我发送了我的属性的值,但我想发送它以便我可以更改它。如果这会产生差异,则某些属性会在集合中进行验证。
是否可以?如果有怎么办?