Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Аналог делегатов для переменных / 6 сообщений из 6, страница 1 из 1
07.06.2013, 16:04
    #38290568
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог делегатов для переменных
Вызов делегата - это, по сути, вызов функции-не-знаю-какой. Делегат лишь указывает на неё и в любой момент могу поменять на другую.

Мне хочется аналог такого делегата для переменных. Я отправляю переменную в объект, он там её изменяет как хочет, хранит её значение у себя во внутреннем поле, а потом в любой момент получаю её обратно.

В C++ я б написал так:
//поле в классе
int* a;

возможно ли аналогично в пределах безопасного кода писать в C#?
...
Рейтинг: 0 / 0
07.06.2013, 16:16
    #38290600
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог делегатов для переменных
Charles Weyland,

а свойства на что?
...
Рейтинг: 0 / 0
07.06.2013, 16:21
    #38290618
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог делегатов для переменных
Charles Weyland,

для особых ценителей , можно сделать
Код: c#
1.
2.
3.
4.
class MyAbstruct
{
   public object MyValue;
}



и всем присваивать экземпляр MyAbstruct. содержимое, поле MyValue будет возвращать то , что в нём на текущий момент есть. такая своеобразная обвязка-заменитель указателя.
...
Рейтинг: 0 / 0
07.06.2013, 16:28
    #38290640
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог делегатов для переменных
beg-in-erCharles Weyland,

а свойства на что?
Вот, создаю класс
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class MyClass
{
public int P{get;set;}
public void Увеличитьвдвое()
{
}
public void Уменьшитьвдвое()
{
}
}



Теперь создаю объект этого класса:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
class Form1
{
private MyClass myclass;
Form1()
{ int a,b,c;
...
myclass = new MyClass();
}
...
private void Button1_Click()
{
   myclass.P = a; //По ссылке!!
}
private void Button2_Click()
{
   myclass.P = b; //По ссылке!!
}
private void Button3_Click()
{
   myclass.P = c; //По ссылке!!
}

private void ButtonIncrease_Click()
{
   myclass.Увеличитьвдвое();
}
private void ButtonDecrease_Click()
{
   myclass.Уменьшитьвдвое();
}
}



Для чего мне это нужно:
Создаю класс animator. В объект этого класса отправляю переменную, которую хочу изменять, и конечное значение, которого она должна достигнуть. Объект сам по себе работает, по таймеру или в отдельном потоке увеличивает значение этой переменной и при каждом увеличении выпаливает событие о том, что переданная ему переменная изменила себя, можно перерисовать формочку. И, короче, так происходит анимация.
...
Рейтинг: 0 / 0
07.06.2013, 20:08
    #38291003
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог делегатов для переменных
Charles Weyland,

ref и out.
...
Рейтинг: 0 / 0
07.06.2013, 20:13
    #38291007
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог делегатов для переменных
Charles Weylandи при каждом увеличении выпаливает событие о том, что переданная ему переменная изменила себя, можно перерисовать формочку.т.е. все равно будет использован делегат?
вот в нем и меняй значение переменной.
новое значение animator может передать параметром при вызове делегата.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Аналог делегатов для переменных / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]