Есть ли эквивалент C# функции выбора() VB6?Есть ли эквивалент C# функции Select() VB6?
day = Choose(month,31,28,30)
Есть ли эквивалент C# функции выбора() VB6?Есть ли эквивалент C# функции Select() VB6?
day = Choose(month,31,28,30)
Не совсем. Конечно, Вы можете создать массив на использование в его индексированный поглотитель:
day = new[] { 31, 28, 30 }[month];
В качестве альтернативы, вы могли бы - я бы не - импортировать Microsoft.VisualBasic
имен и сделать:
day = Interaction.Choose(month, 31, 28, 30);
Я не знаю, сколько ваш пример упрощен, но в том случае, если вы на самом деле ищут пути, чтобы найти число дней в конкретном месяце, попробуйте DateTime.DaysInMonth()
:
day = DateTime.DaysInMonth(2008, 2);
// day == 29
Моя первая догадка будет
var days = new[] { 31, 28, 30 }[month];
Хотя native version делает все виды сумасшедшие вещи, как округление и вид за пределы поля-проверки.
Я буду suges т, можно использовать вместо DateTime.DaysInMonth
:)
Простой ответ: Нет
Если вы хотите сделать только то, что образец делает, попробуйте DateTime.DaysInMonth (год, месяц)
Если действительно о днях в месяц я буду следовать совету, который другие дали. Однако, если вам действительно нужна функция выбора, вы можете легко создать ее самостоятельно. Например, например:
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
Я не удосужился сделать первый аргумент двойным, но это легко сделать. Также возможно сделать нестандартную версию ...
хорошее решение. Спасибо. – Mike