将VB6可选参数转换为C#

时间:2015-02-11 16:22:46

标签: c# vb.net vb6

我有一个VB6函数,它有一个可选的日期间隔参数,我试图转换为C#。我也不确定在代码中处理此问题的最佳方法。这是VB函数声明:

Private Function ReplaceDateTextNonBinary(psTable as String, psColumn as String, psColumnOffSet as String, psDateFormat as String, Optional psInterval as String = "n")

此函数使用以下DateAdd方法调用中的可选参数。

DateTime = DateAdd(psInterval, oSQL.Value(psColumnOffset), Date$)

以下是我计划使用params关键字将函数声明转换为C#的方法。

private static bool ReplaceDateTextNonBinary(string psTable, string psColumn, string pColumnOffset, string psDateFormat, params string psInterval)

我认为这样可行,但我不知道如何对此进行编码,将任何日期间隔作为字符串。我正在考虑使用switch ... case语句,但这看起来并不优雅。

任何想法。

1 个答案:

答案 0 :(得分:2)

您可以在C#中使用可选参数:

private static bool ReplaceDateTextNonBinary(string psTable, 
                                             string psColumn, 
                                             string pColumnOffset, 
                                             string psDateFormat, 
                                             string psInterval = "n")

如果未传递可选参数,则会获得值"n"。请注意,必须在方法签名的最后列出可选参数。另请注意,这是一个C#4.0功能,不适用于早期版本的C#(在这种情况下,简单的重载可能是您最好的选择)。

请参阅:Named and Optional Arguments (C# Programming Guide)

4.0之前的方法就是这样:

private static bool ReplaceDateTextNonBinary(string psTable, 
                                             string psColumn, 
                                             string pColumnOffset, 
                                             string psDateFormat)
{
    return ReplaceDateTextNonBinary(psTable,
                                    psColumn,
                                    pColumnOffset,
                                    psDateFormat,
                                    "n");
}

private static bool ReplaceDateTextNonBinary(string psTable, 
                                             string psColumn, 
                                             string pColumnOffset, 
                                             string psDateFormat, 
                                             string psInterval)
{
    // your implementation here
}