Нахождение какой функции было использовано для назначения переменной (Через переменную, которая назначена) - PullRequest
0 голосов
/ 20 января 2010

У меня есть одна функция GetControlRectangle (Rectangle MethodRect) , которая принимает прямоугольник элемента управления.

Теперь я пишу код вроде Rectangle rct = dataGridView1.GetCellDisplayRectangle (1,0, false); , который находит местоположение ячейки (1,0) dataGridView1 .

И я передаю это rct методу GetControlRectangle .

Теперь, как с помощью MethodRect (который является аргументом в методе) узнать, какая функция использовалась для получения этой точки прямоугольника, например GetCellDisplayRectangle ( ) или GetColumnDisplayRectangle () . Потому что я хочу знать в методе GetControlRectangle () , что эта точка для columnheader или cell и для ячейки, затем для какая клетка.

Короче говоря, я хочу знать, какая функция использовалась через переменную, которая назначается как Rectangle rct = dataGridView1.GetCellDisplayRectangle (1,0, false); через rct I хотите узнать, какая функция использовалась для присвоения этой переменной.

Ответы [ 2 ]

1 голос
/ 20 января 2010

если I понял правильно, он должен просто изменить функцию GetControlRectangle(Rectangle MethodRect) так, чтобы она выглядела как GetControlRectangle(Rectangle MethodRect, bool IsHeader), а затем чтобы вызывающий код принимал решение "какая функция была вызвана". *

0 голосов
/ 20 января 2010

Если я правильно понял, вам нужно конвертировать rct в пару геттер / сеттер.В установщике создайте новый System.Diagnostics.StackTrace () (просто вызовите метод ToString (), чтобы получить читаемое представление).Он будет содержать стек вызовов, в данном случае, функцию, которая устанавливает новое значение для rct .

Как-то так (замените исключение на более подходящую обработку):

Rectangle _rct=null;
Rectangle rct {
  get { return _rct; }
  set {
    throw new Exception(new System.Diagnostics.StackTrace().ToString());
    //_rct=value;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...