Как передать метод в качестве параметра - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. У меня следующий вопрос. Мне необходимо в метод, в виде параметра передать метод, который является составной частью класса OracleDateReader. Легко бы было передать целиком весь метод с экземпляром класса (dr.GetDateTime(0)), однако в данном случае это не удобно, необходимо чтобы передавался именно метод GetDateTime(0) и подсоединялся к экземпляру класса dr. В примере последний параметр ( DateTime GetDateTime()) именно тот, который я хочу передать, но он здесь в таком виде не работает. Подскажите, плиз
Листинг программы
  1. public void resultat(dbConnection con, string sql_zapr, ListBox lb, DateTime GetDateTime())
  2. {
  3.  
  4. OracleCommand cmd = new OracleCommand();
  5. cmd.Connection = con.getDBConnection();
  6. cmd.CommandText = sql_zapr;
  7. cmd.CommandType = CommandType.Text;
  8. OracleDataReader dr = cmd.ExecuteReader();
  9. while (dr.Read())
  10. {
  11. try
  12. {
  13. lb.Items.Add(dr.GetDateTime(0));
  14.  
  15. }
  16. catch
  17. {
  18. lb.Items.Add("Данные отсутствуют");
  19. }
  20. }
  21.  
  22. }

Решение задачи: «Как передать метод в качестве параметра»

textual
Листинг программы
  1.          public delegate DateTime odbdelegate(int t);
  2.        static void Main(string[] args)
  3.         {
  4.             odbdelegate deleg= OracleDataReader.GetDateTime;
  5.             resultat(con, sql_zapr, lb, deleg)
  6.         }
  7.  
  8. public void resultat(dbConnection con, string sql_zapr, ListBox lb, odbdelegate GetDateTime)
  9.         {
  10. //.............................................
  11. DateTime dt = GetDateTime(0);
  12. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы