Совершенно новый для C# [4 часа новый :)], но надеется, что некоторые указатели на калькуляторе плат платят, ограничивая ввод пользователя только номерами, не допускают буквы или специальные символы.Ограничение ввода пользователя только на номера
Во-первых, существует ли ограничение в классе, методе и/или программе? (Я считаю, что класс и метод)
Во-вторых, я видел пример ниже, мог бы я использовать что-то похожее на это?
В-третьих, если это так, мне нужно сделать отдельные классы для KeyPress и KeyPressEventArgs? (Я считаю, что они автоматически там, например, public char KeyChar { get; set; }
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// allows only letters
if (!char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
}
Моя программа
namespace BoardFt_MyTry_
{
class Program
{
static void Main(string[] args)
{
Board board = new Board();
board.lengthOfboard = Convert.ToDouble(askQuestion("What is the length of your board in inches?"));
board.widthOfboard = Convert.ToDouble(askQuestion("What is the width of your board in inches?"));
board.thicknessOfboard = Convert.ToDouble(askQuestion("What is the thickness of your board in inches?"));
Console.WriteLine("Your board has {0} board feet.", board.CalcBoardFt());
Console.ReadLine();
}
private static string askQuestion(string question)
{
Console.WriteLine(question);
return Console.ReadLine();
}
}
Мой совет Класс
namespace BoardFt_MyTry_
{
class Board
{
public double lengthOfboard;
public double widthOfboard;
public double thicknessOfboard;
public double CalcBoardFt()
{
double boardft = 0;
boardft = (this.lengthOfboard * this.widthOfboard * this.thicknessOfboard)/144;
return boardft;
}
}
}
Это, как правило, называется «проверка». –
Не делайте этого - разрешите пользователям вводить цифры с дополнительными символами, например. пробелы, запятые, +, -, затем фильтровать вход или отклонять ввод в зависимости от результатов проверки. То есть +1,000, - 1 000, 1e3, 0.1e + 4 в порядке, 1j34 - нет. –
Спасибо, Джон за разъяснение, что оба они являются «валидацией», а также подтверждение мне нужно принять плохой ввод и сообщить пользователю, что это плохо. (Я бы поднял, но имею 1 репутацию). – vayden12