Я могу предложить 2 способа сделать это.
Предположим, что строка, которую нужно проверить, равна strYear
, и вы считаете действительными все целочисленные значения> = 0.
Первый - принудительное приведение строки к целому числу и отлов любой сброшенной ошибки:
int year = -1;
try {
year = Integer.parseInt(strYear);
} catch (NumberFormatException e) {
e.printStackTrace();
}
boolean validYear = (year >= 0);
Второй - удаление всех нечисловых символов в строке и сравнение результата с исходной строкой. Если они одинаковы, то строка состоит только из цифр:
strYear = strYear.trim();
String strOnlyDigits = strYear.replaceAll("\\D", "");
boolean validYear = (!strYear.isEmpty() && strYear.equals(strOnlyDigits));
Одной из приятных особенностей Immediate Window в Visual Studio является его способность оценивать возвращаемое значение метода, особенно если он вызывается вашим клиентским кодом, но это не часть присвоения переменной. В режиме отладки, как уже упоминалось, вы можете взаимодействовать с переменными и выполнять выражения в памяти, что играет важную роль в этом.
Например, если у вас есть статический метод, который возвращает сумму двух чисел, таких как :
private static int GetSum(int a, int b)
{
return a + b;
}
Затем в окне Immediate Window вы можете ввести следующее:
? GetSum(2, 4)
6
Как видите, это очень хорошо работает для статических методов. Однако, если метод нестатический, вам необходимо взаимодействовать со ссылкой на объект, которому принадлежит метод.
Например, предположим, что ваш класс выглядит так:
? new Foo().GetMessage()
"hello"
Очень распространенный способ увидеть значение метода - выбрать имя метода класса и выполнить «Добавить наблюдение», чтобы вы могли увидеть его текущее значение в окне отслеживания. Однако, еще раз, объект должен быть создан и находиться в области видимости для отображения допустимого значения. Это гораздо менее мощно и более ограничительно, чем использование Immediate Window.
Наряду с методами проверки вы можете выполнять простые математические уравнения:
? 5 * 6
30
или сравнивать значения:
? 5==6
false
? 6==6
true
Знак вопроса ('?') Не нужен, если вы находитесь непосредственно в окне Immediate Window, но оно включено сюда для ясности (чтобы различать введенные выражения и результаты). Однако, если вы находитесь в Command Window и вам нужно сделать что-то быстрое в Immediate Window, тогда укажите ваши утверждения с '?' и вперед.
Intellisense работает в окне Immediate Window , но иногда может быть немного непоследовательным. По моему опыту, кажется, что он доступен только в режиме отладки, но не в режиме разработки, без отладки.
К сожалению, еще одним недостатком Immediate Window является то, что оно не поддерживает циклы.
Я использую его меньше, чем в прошлом. Иногда полезно изменить значение переменной или проверить объекты. Это также можно сделать через окно наблюдения, поэтому я склонен использовать это чаще.