ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

31.05.2010, 14:16
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
Провел на форуме: 2052341
Репутация:
95
|
|
создал метод для проверки длинны номера:
Код:
public static int TryNum(int number)
{
if (tb2.Text.Length < 7 || tb2.Text.Length > 12)
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return 0;
}
else
{
return number;
}
}
применяю его в основной программе:
Код:
int num = Account.TryNum(tb2.Text);
if (num != "<Ошибка>")
{
отсюда несколько ошибок:
Код:
Элемент "tb2" не существует в текущем контексте. (Хотя на самом деле имя и все остальное правильное=))
дальше идет вообще бред=)
Код:
Невозможно объявить локальную переменную с именем "num" в этой области видимости, т.к. она придаст другое значение "num", которое уже используется в области видимости "родительский или текущий" для обозначения другого понятия
Это уже ругается на вот этот маленбкий кусочек кода в основной программе.
Код:
Оператор "!=" не может применяться к операндам типа "int" и "string"
|
|
|

31.05.2010, 15:31
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
Провел на форуме: 2052341
Репутация:
95
|
|
проверяем переменную целая она или нет и переводим ее в string
|
|
|

31.05.2010, 15:34
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
Сообщение от jecka3000
проверяем переменную целая она или нет и переводим ее в string
дай сюда весъ метод TryInt.
edit: он не видит твой tb2 из другого класса. ты должен его сделать общедоступным. ещё надо инклудить forms
|
|
|

31.05.2010, 15:40
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
Провел на форуме: 2052341
Репутация:
95
|
|
public static int TryInt(string strnum) //метод проверяет тип переменной
{
int tryme = 0;
try //проверяем тип переменной
{
tryme = int.Parse(strnum);
return tryme; //если переменная целого типа, возвращаем ее
}
catch //если тип не int, выводим предупреждение и возвращаем 0
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return 0; //возвращаем 0 в случае ошибки
}
}
public static int TryNum(int number)
{
if (tb2.Text.Length < 7 || tb2.Text.Length > 12)
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return 0;
}
else
{
return number;
}
}
|
|
|

31.05.2010, 16:24
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
методы в принципе ок. у меня всё работает. я бы ещё поменял всё int на long, так как 12-значное число слишком велико для int. и раз ты уже передаёшь значение number функции TryNum, то и проверяй его а не tb2.Text. тоесть так if (number.ToString().Length < 7 || number.ToString().Length > 12). вызывай функцию например в коде главной формы так TryNum(long.Parse(tb2.Text))
edit:если ты не хочешь вызывать функции из кода формы, а производишь вызов из другого класса, то передавай класс формы как параметр функции или параметр конструктора класса. по другому ещё можно определитъ таблицы как статические свойства формы и обращатъся к ним типа Форма.Свойство.
Последний раз редактировалось BrainDeaD; 31.05.2010 в 16:39..
|
|
|

01.06.2010, 15:28
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
Сообщение от jecka3000
public static int TryInt(string strnum) //метод проверяет тип переменной
{
int tryme = 0;
try //проверяем тип переменной
{
tryme = int.Parse(strnum);
return tryme; //если переменная целого типа, возвращаем ее
}
catch //если тип не int, выводим предупреждение и возвращаем 0
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return 0; //возвращаем 0 в случае ошибки
}
}
public static int TryNum(int number)
{
if (tb2.Text.Length < 7 || tb2.Text.Length > 12)
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return 0;
}
else
{
return number;
}
}
охренеть.
TryParse уже не попсово?
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

31.05.2010, 15:33
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
Провел на форуме: 2052341
Репутация:
95
|
|
да мне кажется что все бы заработала если бы тут if (tb2.Text.Length < 7 || tb2.Text.Length > 12)
он не ругался и не говорил что tb2 не существует в данном контексте
|
|
|

31.05.2010, 16:54
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
edit: он не видит твой tb2 из другого класса. ты должен его сделать общедоступным. ещё надо инклудить forms
млять, всегда удивлялся как компилер может такое пропускать?
ЗЫ читая тему пришел к выводу что в сишарп лезут люди, далекие от ООП.
Сцуко, ненавидел дельфи за то что говнокодеры так и прут, в шарпе видимо все еще хуже
|
|
|

31.05.2010, 17:03
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
Сообщение от GhostOnline
ЗЫ читая тему пришел к выводу что в сишарп лезут люди, далекие от ООП.
Сцуко, ненавидел дельфи за то что говнокодеры так и прут, в шарпе видимо все еще хуже
ну пацанчик походу только начинает. все мы когда-то начинали. ооп в принципе простая вещь, но допереть до неё сразу не просто. зато в один момент приходит озарение, и всё идёт как по маслу.
Сообщение от GhostOnline
млять, всегда удивлялся как компилер может такое пропускать?
ну так компайлер ошибку палит. он только не может сказать какого класса объект, так как возможно в каждом классе есть свой tb2.
|
|
|

31.05.2010, 19:58
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
Провел на форуме: 2052341
Репутация:
95
|
|
BrainDeaD,
скажи, было у тя когда нить, что например открываешь свой проект и , например, решаешь добавить менюшку, добавил, добавил код. А когда нажимаешь Debug ничего не происходит,т.е. компилер отказывается принимать любое новшество?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|