Существуют ли какие-либо встроенные методы проверки типов данных в C # или нам нужно создать наши собственные методы для проверки? - PullRequest
0 голосов
/ 01 марта 2011

Такой метод дает мне то, что я хочу, но не знаю, пишу ли я некрасивый код. Этот метод пытается преобразовать значение текстового поля в int, в случае неудачи выдает ошибку. если ошибка, возвращается false, что означает, что она не может быть преобразована в int.


namespace icol
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            AllUse myMethods = new AllUse();
            if (myMethods.isThisInt(textBox1.Text))
            {
                MessageBox.Show(textBox1.Text);
                // if this int, you can keep writing further your program's logic
            }
            else {

                MessageBox.Show("This textbox value can not be converted to int!");
            }
        }
    }

    public class AllUse{

        public bool isThisInt(string x) {
            try {
                Convert.ToInt32(x);
                return true;
            }
            catch (Exception err ){
                string y = err.Message; // do not know what to do with err
                return false;
            }      
        } //method

    } // class
}

Ответы [ 3 ]

4 голосов
/ 01 марта 2011

Вы можете использовать int.TryParse(), который возвращает логическое значение, указывающее, правильно ли было проанализировано значение, и параметр out со значением.Этот метод быстрее, чем делать try / catch.

int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
    Console.WriteLine("Converted '{0}' to {1}.", value, number);         
}
else
{
    if (value == null) value = ""; 
    Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
0 голосов
/ 01 марта 2011
int number;
bool result = Int32.TryParse(textBox1.Text, out number);

if (result)
{
   // Do something
}
else
{
   // Do something else
}

http://msdn.microsoft.com/en-us/library/f02979c7.aspx

0 голосов
/ 01 марта 2011

Существует метод Int32.TryParse, который делает почти то же самое.

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