在不破坏现有构建的情况下更改函数中的参数顺序

时间:2015-07-30 02:56:13

标签: vb.net vb.net-2010

我有一个有助于从数据库中获取数据的函数。这个函数允许我定义表名,必填字段作为字符串,where条件,order by字段和可选表连接。该功能看起来像这样。

Public Function DBSELECT(Byval table As String, Byval fields As String, Byval where as String, Byval orderBy As String, Optional Byval join As String = Nothing)

但是现在我需要在join参数之前添加一个GroupBy参数,但是如果我只是添加该参数,它将破坏已经使用此函数的代码。有没有办法在不破坏现有构建的情况下修改此方法。

3 个答案:

答案 0 :(得分:3)

我看到两个选项:

  1. 最后添加新参数with default value set to Nothing

  2. 添加添加了参数的新method overload,并将现有的一个调用设置为&提供的默认值。

答案 1 :(得分:0)

您可以使用Optional参数,但必须在join参数之后。

Public Function DBSELECT(Byval table As String, 
Byval fields As String, Byval where as String, 
Byval orderBy As String, Byval join As String, 
Optional Byval groupBy as String=Nothing)

答案 2 :(得分:0)

将新参数作为Optional参数添加到末尾,并带有默认值。

示例:

Imports System

Public Module Module1
    Public Sub Main()
        Test()
        Test("Goodbye")
    End Sub

    Public Sub Test(Optional ByVal opt1 As String = "Hello")
        Console.WriteLine(opt1)
    End Sub
End Module

结果:

Hello
Goodbye

在您的方法中,您将检查GroupBy参数不是默认值,因此您将知道将其应用于SQL语句。