Jes*_*ebb 7 vb.net parameters string-function
我们有一个VB.NET项目,我正在进行一些重构.许多当前函数需要将a userId
作为参数传入.例如:
Private Function Foo(userId As Integer) As String
Return "Foo"
End Function
Run Code Online (Sandbox Code Playgroud)
但是现在,我已经userId
在我们的大部分代码中不再需要这个参数了.
我想我会userId
从所有不再需要它们的函数中删除所有参数,并尝试重新构建项目以查看调用代码需要更改的内容.令我惊讶的是,代码构建成功.
我了解到你可以调用一个函数来返回一个字符串并且不接受任何参数,但仍然传入一个Integer
值.VB.NET构建/执行此代码,就像您尝试调用该函数一样,然后从指定索引处的String中获取字符.例如:
Imports System
Public Module MyModule
Private Function Foo() As String
Return "Foo"
End Function
Public Sub Main()
Console.WriteLine(Foo(0)) ' prints 'F'
Console.WriteLine(Foo(1)) ' prints 'o'
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
(.NET小提琴)
在这种情况下,我希望我的构建失败.我已经尝试使用Option Strict On
和Option Explicit On
但也似乎改变这种行为.
反正有没有在我的VB.NET项目中使这种函数调用无效?
创建一个不带参数的重载,它在其他方面都是原始函数的副本。
Public Function Foo() As String
Return "Foo"
End Function
Run Code Online (Sandbox Code Playgroud)
现在将 userId 的类型更改为其他类型(不是Object
或任何数字等)
Public Function Foo(userId As DateTime) As String
Return "Foo"
End Function
Run Code Online (Sandbox Code Playgroud)
由于参数存在重载,编译器认为您的意思是调用它,而不是索引 chararray。所以你有编译错误。修复错误
然后删除原来的函数。
归档时间: |
|
查看次数: |
60 次 |
最近记录: |