Входная строка была не в правильном формате.Обрабатывать исключение - PullRequest
2 голосов
/ 02 апреля 2012

Я получаю исключение "Входная строка была не в правильном формате".Я хочу обработать это исключение и добавить свою собственную ошибку.Ввод должен быть int.Где я должен это сделать?У меня есть объектный источник данных с listview, и у меня возникают проблемы с получением textbox.text из кода, поэтому я могу использовать tryParse.

Ответы [ 3 ]

2 голосов
/ 02 апреля 2012

Number равно всегда и int, оно определено таким образом ...

Возможно, вы хотите проверить содержимое строки.Самый простой способ - разобрать его в int:

int number;

if(!int.TryParse(yourString, out number))
{
   Not an int!
}
2 голосов
/ 02 апреля 2012

Ваша собственность типа Int32.Вы не можете присвоить этому свойству ничего, кроме действительного целого числа.Теперь, если у вас есть какой-то пользовательский ввод в форме строки, а затем вам нужно присвоить его целочисленному свойству, вы можете использовать метод int.TryParse , чтобы убедиться, что значение, введенное пользователем, являетсядопустимое целое число.

Например:

string someValueEnteredByUser = ...
int value;
if (!int.TryParse(someValueEnteredByUser, out value))
{
    // the value entered by the user is not a valid integer
}
else
{
    // the value is a valid integer => you can use the value variable here
}
1 голос
/ 02 апреля 2012

'value' всегда будет того же типа, что и ваша переменная.Таким образом, имея это:

private bool mabool = false; 

public bool MaBool
{
    get { return mabool; }
    set { mabool = value; }
}

Никогда не потерпит крах.Это потому, что, как я уже сказал, значение будет того же типа, что и переменная.В этом случае значение является логическим значением.

Попробуйте его с классом:

public class Rotator
{
    public Roll, Pitch, Yaw;

    // Declarations here (...)
}

private Rotator rotation = new Rotator();
public Rotator Rotation
{
    get { return rotation; }
    set
    {
        // Since value is of the same type as our variable (Rotator)
        // then we can access it's components.
        if (value.Yaw > 180) // Limit yaw to a maximum of 180°
            value.Yaw = 180;
        else if (value.Yaw < -180) // Limit yaw to a minimum of -180°
            value.Yaw = -180;

        rotation = value;
    }
}

Как видно из второго примера, значение является ротатором, поэтому мы можем получить доступ к его компонентам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...