我们有一个 VB.NET 项目,我正在对它进行一些重构。许多当前函数需要将 auserId
作为参数传入。例如:
Private Function Foo(userId As Integer) As String
Return "Foo"
End Function
但是现在,我已经使userId
我们的大部分代码不再需要这个参数。
我在想我会userId
从所有不再需要它们的函数中删除所有参数,然后尝试重新构建项目以查看调用代码需要更改的内容。但令我惊讶的是,代码构建成功。
我了解到您可以调用一个返回字符串且不带任何参数但仍传入一个Integer
值的函数。VB.NET 构建/执行此代码,就像您尝试调用该函数然后从指定索引处的字符串中获取字符一样。例如:
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
(.NET 小提琴)
在这种情况下,我希望我的构建失败。我试过使用Option Strict On
,Option Explicit On
但似乎都没有改变这种行为。
无论如何在我的 VB.NET 项目中使这种函数调用无效?