powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
11 сообщений из 11, страница 1 из 1
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950664
damp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в VB.Net такое возможно:

Код: vbnet
1.
2.
3.
4.
Private Sub MySub(ByVal sender As System.Object, ByVal e As System.EventArgs) 
         
            Console.WriteLine(sender.name)
..... 



решил переписать в C# - выдает ошибку:

Код: c#
1.
2.
3.
private void mySub(Object sender, EventArgs e)
        { Console.WriteLine(sender.name)  ;  
..... 



как мне обратиться к свойствам и методам sender, не хочется дописывать проверки на типы, потом приводить и т.д. - много работы,
есть ли простой метод получения типа объекта, если не знаешь заранее ?

Спасибо.
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950670
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-нибудь так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  class Program
  {
    static void Main(string[] args)
    {
      object w = new foo();

      Console.WriteLine(w.GetType().GetField("Name").GetValue(w));
      w.GetType().GetMethod("Print").Invoke(w, null);
      Console.ReadKey();

    }
    public class foo
    {
      public string Name = "ggg";
      public void Print()
      {
        Console.WriteLine("qqq");
      }
    }
  }
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950694
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
damp,

нужно использовать интерфейсы или абстрактные классы. Для этих целей, это самый верный путь, использовать рефлексию неоправданное зло в данном случае. имхо.
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950732
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перегрузить ToString()
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950734
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ужоснах

На 99% уверен, что достаточно
Код: c#
1.
 sender as Control
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950740
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилужоснах

На 99% уверен, что достаточно
Код: c#
1.
 sender as Control


+1

Добавлю вам еще один процент. Чтобы было 100%.
:-)
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950793
damp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129Изопропилужоснах

На 99% уверен, что достаточно
Код: c#
1.
 sender as Control


+1

Добавлю вам еще один процент. Чтобы было 100%.
:-)
Это и так ясно.
Вопрос был в другом. Это был просто пример.

У меня много форм, коллекций и т.д. разных типов, я добавлял к ним свойства, методы и обращался просто ч/з object в vb.net.
В C# нужно обязательно привести к типу обеспечивающему требуемую функциональность, для этого нужны проверки на тип. Или наследовать от предка в котором такая функциональность прописана.
Просто думал есть способ попроще ч/з object , но видимо нет
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950795
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
damp,

VB.NET (при включенной Option Strinct Off) всё равно при кодогенерации в сборку, дополнительно кастовал в нужный тип или использовал позднее связывывание (у него есть сервисные классы для этих целей). Лучше будет всё же объявить ваши объекты с конкретным типом.
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950796
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправочка, Option Strict Off
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950797
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dampD129пропущено...

+1

Добавлю вам еще один процент. Чтобы было 100%.
:-)
Это и так ясно.
Вопрос был в другом. Это был просто пример.

У меня много форм, коллекций и т.д. разных типов, я добавлял к ним свойства, методы и обращался просто ч/з object в vb.net.
В C# нужно обязательно привести к типу обеспечивающему требуемую функциональность, для этого нужны проверки на тип. Или наследовать от предка в котором такая функциональность прописана.
Просто думал есть способ попроще ч/з object , но видимо нет

Вообще-то есть. Но он проще для написания - но совсем не проще для компьютера.
Как там адепты натив кода говорят - "медленный" - и часто зря, а вот тут нет, не зря. Реально медленный способ.

:-)

Код: c#
1.
((dynamic)sender).IfAnyExist("any parameter");
...
Рейтинг: 0 / 0
как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
    #38950801
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dampD129пропущено...

+1

Добавлю вам еще один процент. Чтобы было 100%.
:-)
Это и так ясно.
Вопрос был в другом. Это был просто пример.

У меня много форм, коллекций и т.д. разных типов, я добавлял к ним свойства, методы и обращался просто ч/з object в vb.net.
В C# нужно обязательно привести к типу обеспечивающему требуемую функциональность, для этого нужны проверки на тип. Или наследовать от предка в котором такая функциональность прописана.
Просто думал есть способ попроще ч/з object , но видимо нет
это говорит лишь о том, что у вас говнокод, лапша из кода
если бы использовали наследование и интерфейсы, то проблем бы таких не было.
Класс (В том числе и класс формы) может наследовать любое количество интерфейсов, в которых вы свои методы определите и через интерфейс будите их вызывать.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как в C# обратиться к свойствам и методам объекта, заданного ссылкой object
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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