Вопрос

Есть ли функция .Net, которая делает это.Думаю, если нет, мне придется создать свой собственный метод.

Дело в том, что у меня есть функция.Он принимает целые числа.Если вы передадите целое число 0 или нулевое значение, оно все равно будет работать.Проблема в том, что значение пустого текстового поля является значением String.Empty.

Я не хочу использовать if.Я имею в виду, что могло бы, но было бы гораздо лучше, если бы я мог просто вызвать свою функцию вот так

MyFunction(txtTextbox.Text)

Но это не сработает, потому что невозможно преобразовать string.empty в целое число.

Это было полезно?

Решение

Я думаю, вам нужно:

if(string.IsNullOrEmpty(value)) value = null;

или

int MyFunction(string value)
 {
      if(string.IsNullOrEmpty(value)) return 0;

      int val = 0;
      int.TryParse(value, out val);
      return val;
 }

Другие советы

А как насчет принятия целого числа в вашу функцию, которая должна читать целые числа, и использовать int.Parse или int.TryParse на веревке заранее?

С другой точки зрения, я предполагаю, что ваше текстовое поле также должно будет разрешать ввод только цифр.В противном случае простая обработка null не будет надежной защитой от ввода нечисловых значений.Для этого должны быть созданы маски, обработчик событий или проверка.Как насчет того, чтобы создать свой собственный NumTextBox, который наследуется от TextBox с уже имеющимися у вас ограничениями на ввод, и либо переопределить свойство Text, либо создать новое свойство, вызывающее Value, которое отслеживает все преобразования и последовательно возвращает соответствующее значение во всей вашей системе.

попробуй это

   Sub MyFunction(ByVal Param1Integer as Integer)
     ' Do Something
   End Sub

   Sub MyFunction(ByVal Param1String as String)
     MyFunction(Val(Param1String))
   End Sub

Предполагается, что пустая строка равна 0.

Рассматривали ли вы возможность использования ЧисловойВверхВниз (контроль вращения)?У него есть член .Value (всегда допустимое целое число!) Вместо необходимости преобразования из строки.Вы можете ограничить верхние и нижние значения, а также установить значение по умолчанию.

Я бы просто использовал встроенный оператор IF (VB):

MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top