Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2016, 19:28   #41
Traycers
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 10
По умолчанию

Автор, я правильно понял, что ты хочешь получить ссылку объекта своего класса?

с++:
Код:
auto item1 = MyClass(); // наш класс в нем нужные данные
auto & item2 = &item1; // получаем ссылку
uintptr_t addr = (uintptr_t)&item1; // получаем адрес
c#:
Код:
var item1 = new MyClass();
MyClass item2 = item1;
а вот как адрес получить хз, насколько я понял item1 может менять свой адрес в результате работы сборщика мусора.

По идее у тебя будет нечто такого
Код:
IMyInterface item1 = new MyClass(); // реализует IMyInterface
textbox1.Tag = item1;
textbox2.Tag = item1;


var item2 = (IMyInterface)textbox2.Tag;
item2.data = "hello world"; // у всех textbox (1 и 2) будет одинаковые значения data

Последний раз редактировалось Alex11223; 22.11.2016 в 19:41.
Traycers вне форума Ответить с цитированием
Старый 22.11.2016, 19:34   #42
Traycers
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 10
По умолчанию

Для вызова метода, делегат - по аналогии с с++ это указатель на метод.

грубо говоря, у тебя есть массив Delegate[] methods;
любой делегат, Action и Func по сути своей являются ссылкой на метод.

Ну а теперь вызвать любой метод из массива:
foreach(var item in methods)
item.DynamicInvoke( параметры );
параметры имеют вид params object[], поэтому можешь передавать все что угодно.
Внимательнее с декларацией делегатов будь.
Так же можно создать тип и делегат из метода, если лень все делегаты описывать.
Traycers вне форума Ответить с цитированием
Старый 22.11.2016, 20:06   #43
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Traycers Посмотреть сообщение
а вот как адрес получить хз, насколько я понял item1
Адрес чего? item1 и так ссылка. Автор хотел получить ссылку на int и т.п., а не экземпляр класса.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.11.2016, 09:02   #44
Traycers
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 10
По умолчанию

Входит автору необходима ссылка на структуру, т.к. public struct Int32 ... Получается что так не выйдет, если в метод передавать тогда - ref.
Traycers вне форума Ответить с цитированием
Старый 23.11.2016, 15:31   #45
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Traycers Посмотреть сообщение
если в метод передавать тогда - ref
А у меня НЕ метод, у меня сохранение ссылки в поле Tag компонента.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 23.11.2016, 15:58   #46
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

ну что такой упертый.. зачем вам этот тег, жить без него не в состоянии?
come-on вне форума Ответить с цитированием
Старый 23.11.2016, 16:59   #47
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

come-on, да всё уже, программу я сдал. Просто Tag удобный, выручает в любых ситуациях, когда нужно хранить зависимую информацию.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 23.11.2016, 17:01   #48
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

на него уже забили болт лет десять назад
come-on вне форума Ответить с цитированием
Старый 23.11.2016, 18:43   #49
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
на него уже забили болт лет десять назад
Возможно, но тогда вопрос: зачем заводить отдельный ассоциативный массив данных, когда каждый компонент может сам в себе нести информацию о том, что и как он должен делать ? Я так подозреваю, что ответ на этот вопрос есть.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 23.11.2016, 18:48   #50
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну как минимум потому что тег неудобен хотя бы необходимостью каста в рантайме (легче допустить и не заметить ошибку).

И кроме массива есть другие варианты.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции Diana528 Общие вопросы C/C++ 1 18.04.2013 21:56
вызов функции -Anton- Microsoft Office Excel 2 09.06.2011 14:18
Мини бэйсик:объявление функции, вызов функции , возврат. AL_LORD Помощь студентам 2 14.10.2010 17:48
Вызов функции new player БД в Delphi 5 07.10.2010 13:01
Вызов функции MarSeON PHP 2 01.08.2008 20:22