Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
.NET технология от и до
> Тема:
C# вопрос
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: C# вопрос (Прочитано 9044 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SeRzzz
Гость
C# вопрос
«
:
20-05-2005 08:07 »
Можно ли как-то в C#, как бы это сказать, ну "подождать"чтоли пока переменной присвоится ссылка на объект, а потом уже выполнять следующий код.
так как у меня есть, что-то типа того:
MyObject mo=OtherObject.GetMyObject();
if (mo==null)
throw new Exception("Не заданна ссылка на обьект!");
И я сто процентов знаю, что OtherObject.GetMyObject() не возвращает null. А исключение время от времени вызывается. Всё это дело весит на кнопке, при нажатии на кнопарь оно не понятно в каких случаях вылетает, при повторном нажатии с теми же параметрами НИЧЕГО не изменя тутже - всё работает. Есть подозрение, что ссылка не успевает присвоиться.
Записан
xelos
Гость
Re: C# вопрос
«
Ответ #1 :
20-05-2005 11:46 »
не понятно, что означает "подождать"... после выполнения команды MyObject mo=OtherObject.GetMyObject();
mo либо не null (если нет противоречий в присваивании и операция корректна с точки зрения безопасности), либо null - если такое может быть... "присваивание" происходит "мгновенно".
ошибка, вряд ли идет от того, что ссылка присваивается "с паузой", имхо GetMyObject() надо смотреть... или OtherObject в другом потоке выполняется?
OtherObject - объект какого типа? тоже MyObject?
как создаешь OtherObject?
Записан
SeRzzz
Гость
Re: C# вопрос
«
Ответ #2 :
22-05-2005 04:36 »
всё выполняется в одном потоке
а косяк оказался с серваком, всем спасибо. Хз чё там было, но после того как админ там что-то поправил всё стало работать замечательно.
Записан
Misteras2003
Гость
Re: C# вопрос
«
Ответ #3 :
24-05-2006 15:33 »
:confused:дана программа:
namespace Peregon8v2
{
class Program
{
static void qwe( int i, string b )
{
i = 10;
b = "www";
}
static void Main(string[] args)
{
int i = 5;
string b = "qqq";
qwe( i, b );
Console.WriteLine( "{0}, {1}", i, b );
}
При ее выполнении действия в процедуре "qwe" не сохраняются,
выдается ответ "5, qqq", а надо, чтобы значения переменных "i и b" изменились,
и ответ был бы "10, www".
Заранее спасибо!
Записан
Dimka
Деятель
Команда клуба
Offline
Пол:
Re: C# вопрос
«
Ответ #4 :
24-05-2006 17:14 »
В данном случае сделать параметры возвращаемыми
Код:
static void qwe(out int i, out string b)
{
i = 10;
b = "www";
}
Но общая структура программы показывает, что ты неудачно выбрал пример. Судя по коду тебе нужно загрузить значения в функцию qwe и там их изменить. В этом случае надо использовать квалификаторы ссылок:
Код:
static void qwe(ref int i, string b)
{
...
}
Строка является объектом, поэтому квалификатора не требует. НО! Так как обработка строк происходит через их копирование, то кроме как через out параметр или возвращаемое значение функции строчку назад не вернуть. Хотя точно не уверен - попробуй ref, может пойдёт.
Записан
Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба
Offline
Пол:
Re: C# вопрос
«
Ответ #5 :
24-05-2006 19:32 »
Да, по ref строчки передаются по ссылке корректно, т.е. изменения будут видны в вызывающей функции.
Записан
Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
.NET технология от и до
> Тема:
C# вопрос
Загружается...