powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# как получить ссылку на объект вместо самого обекта?
7 сообщений из 7, страница 1 из 1
c# как получить ссылку на объект вместо самого обекта?
    #39518701
хорошо я согласен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некая функция, обработчик события
Код: c#
1.
2.
3.
void xxx_changed(object v)
{
}


Приходится часто писать как-то так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
void xxx_changed(object v)
{
   var a = ((LongNameOfMyType)v).method1.method2.property;
   a.x = 
   a.change(...)..
   a.processsomething(...)...
   обработка
   ((LongNameOfMyType)v).method1.method2.property = a;
}


при этом сам LongNameOfMyType весьма увесистая штука.
Как можно получить то значение по ссылке? Чтобы объект не дублировался.
...
Рейтинг: 0 / 0
c# как получить ссылку на объект вместо самого обекта?
    #39518703
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
???

объект это и есть ссылка тут
...
Рейтинг: 0 / 0
c# как получить ссылку на объект вместо самого обекта?
    #39518710
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо я согласенЧтобы объект не дублировался.
Где тут дублирование?
...
Рейтинг: 0 / 0
c# как получить ссылку на объект вместо самого обекта?
    #39518719
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если object v - boxed value-type, то возможно некоторое дублирование в памяти. Иначе че-то не вижу дублирования.

Но вообще это нужно сделать так:

interface IPropertyAcessProvider
{
int GetProperty();
}

class LongNameOfMyType: IPropertyAccessProvider
{
int Field1;
int Field2;
...
int Field100500;

public Property GetProperty()
{
return method1.method2.property;
}

public void SetProperty(Property property)
{
method1.method2.property = property;
}
}

void xxx_changed(IPropertyAccessProvider v)
{
var a = v.GetProperty();
.....
y.SetProperty(a);
}
...
Рейтинг: 0 / 0
c# как получить ссылку на объект вместо самого обекта?
    #39518720
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин тэги забыл ешки-матрешки, прошу пардону
Код: 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.
interface IPropertyAcessProvider
{
     int GetProperty();      
}

class LongNameOfMyType: IPropertyAccessProvider
{
     int Field1;
     int Field2;
     ...
     int Field100500;

     public Property GetProperty()
     {
          return method1.method2.property;
     }

     public void SetProperty(Property property)
     {
           method1.method2.property = property;
      }
}

void xxx_changed(IPropertyAccessProvider v)
{
     var a = v.GetProperty();
     .....
     y.SetProperty(a);
}
...
Рейтинг: 0 / 0
c# как получить ссылку на объект вместо самого обекта?
    #39518731
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо я согласенПриходится часто писать как-то так
Попробуй написать о Причине и Проблеме, а не о методе её решения (твой код)
...
Рейтинг: 0 / 0
c# как получить ссылку на объект вместо самого обекта?
    #39518759
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisЕсли object v - boxed value-type, то возможно некоторое дублирование в памяти. Иначе че-то не вижу дублирования.

Но вообще это нужно сделать так:

В этом случае достаточно, чтобы структура реализовывала интерфейс, в котором объявлено нужное свойство/метод, и кастовать к этому интерфейсу - при этом не будет анбоксинга с размещением копии структуры на стеке. Но я почему-то сомневаюсь, что у ТС object v - забоксенная структура.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# как получить ссылку на объект вместо самого обекта?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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