привет.
хотелось бы знать
object r = null;
var tt = r ?? 5;
данная конструкция всем понятна,но есть ли такое же красивое решение, не в случае когда r == null тогда 5,
а если r == 0 тогда 5.
можно ли написать каким либо образом подобное расширение без тернарных условий
Здравствуйте, Аноним, Вы писали:
А>привет.
А>хотелось бы знать
А>А>object r = null;
А>var tt = r ?? 5;
А>
А>данная конструкция всем понятна,но есть ли такое же красивое решение, не в случае когда r == null тогда 5,
А>а если r == 0 тогда 5.
А>можно ли написать каким либо образом подобное расширение без тернарных условий
нет.
А чем вам тернарное условие не нравится?
Здравствуйте, xednay89, Вы писали:
X>Здравствуйте, Аноним, Вы писали:
А>>привет.
А>>хотелось бы знать
А>>А>>object r = null;
А>>var tt = r ?? 5;
А>>
А>>данная конструкция всем понятна,но есть ли такое же красивое решение, не в случае когда r == null тогда 5,
А>>а если r == 0 тогда 5.
А>>можно ли написать каким либо образом подобное расширение без тернарных условий
X>нет.
X>А чем вам тернарное условие не нравится?
var maxThreadCount = (UserListList.Active.Count > 0? UserListList.Active.Count : 1);
//или
var i = UserListList.Active.Count;
var maxThreadCount = (i > 0? i : 1);
а если таких мест много аналогичных, то не красиво код смотрится
var maxThreadCount = UserListList.Active.Count ?? 1;
//так бы было приятнее
X>>Здравствуйте, Аноним, Вы писали:
А>а если таких мест много аналогичных, то не красиво код смотрится
А>А>var maxThreadCount = UserListList.Active.Count ?? 1;
А>//так бы было приятнее
А>
Ну если таким мест действительно много, что можно сделать метод расширения, чтобы выглядело примерно так:
var maxThreadCount = UserListList.Active.Count.NonZero();
Здравствуйте, xednay89, Вы писали:
точнее вот так
X>X>var maxThreadCount = UserListList.Active.Count.InsteadOfZero(1);
X>
Здравствуйте, xednay89, Вы писали:
X>>>Здравствуйте, Аноним, Вы писали:
А>>а если таких мест много аналогичных, то не красиво код смотрится
А>>А>>var maxThreadCount = UserListList.Active.Count ?? 1;
А>>//так бы было приятнее
А>>
X>Ну если таким мест действительно много, что можно сделать метод расширения, чтобы выглядело примерно так:
X>X>var maxThreadCount = UserListList.Active.Count.NonZero();
X>
так и написал,спасибо за совет
public static class MyExtensions
{
public static int NonZero(this int a)
{
return a > 0 ? a : 1;
}
}
А>А>var maxThreadCount = (UserListList.Active.Count > 0? UserListList.Active.Count : 1);
А>//или
А>var i = UserListList.Active.Count;
А>var maxThreadCount = (i > 0? i : 1);
А>
А>а если таких мест много аналогичных, то не красиво код смотрится
я бы написал так:
maxThreadCount = Max( 1, UserListList.Active.Count );
Здравствуйте, Аноним, Вы писали:
А>так и написал,спасибо за совет
А>public static int NonZero(this int a)
IMHO не удачный вариант. Я бы сделал расширение по второму варианту
public static int NonZeroOrSpecified(this int value, int specified)
{
return value > 0 ? value : specified;
}
Гибче и читабельнее в коде.