Это важная часть вопроса:
Код перенесен с Java на C #. Одна из функций имеет вход «int», а другая - «integer» (для принятия нулевого значения)
В .NET нет прямого эквивалента java.lang.Integer
, но для разрешения нулевых значений вы должны использовать int?
(синоним Nullable<int>
). Просто использование int
и Int32
не работает, потому что они одного типа.
Так что вы можете иметь:
// Names changed to be more idiomatic, though still not great
public bool FuncE(int item)
{
...
}
public bool FuncE(int? item)
{
...
}
Все это говорит о том, что я сильно подозреваю, что вы можете реорганизовать код только в один метод, принимающий int?
, и вполне возможно сделать это в одном выражении, используя LINQ. Хотя трудно сказать, чего вы пытаетесь достичь с помощью параметра int?
.