是否有与VB6的Choose()函数相当的C#?

Mik*_*ike 4 c#

是否有与VB6的Choose()函数相当的C#?

day = Choose(month,31,28,30) 
Run Code Online (Sandbox Code Playgroud)

Jør*_*ode 11

并不是的.您当然可以使用其索引的getter创建一个数组:

day = new[] { 31, 28, 30 }[month];
Run Code Online (Sandbox Code Playgroud)

或者,您可以 - 我不会 - 导入Microsoft.VisualBasic命名空间并执行:

day = Interaction.Choose(month, 31, 28, 30);
Run Code Online (Sandbox Code Playgroud)

我不知道您的示例有多简化,但如果您实际上正在寻找一种方法来查找特定月份的天数,请尝试DateTime.DaysInMonth():

day = DateTime.DaysInMonth(2008, 2);
// day == 29
Run Code Online (Sandbox Code Playgroud)


Ste*_*gli 5

如果真的是一个月的日子,我会听从别人给出的建议.但是,如果你真的需要一个选择功能,你可以自己轻松地建立一个.例如这样:

public static T Choose<T>(int index, params T[] args)
{
    if (index < 1 || index > args.Length)
    {
        return default(T);
    }
    else
    {
        return args[--index];
    }
}

// call it like this
var day = Choose<int?>(1, 30, 28, 29);  // returns 30
Run Code Online (Sandbox Code Playgroud)

我没有费心将第一个参数设为双,但这很容易做到.也可以制作非通用版本......