Проблема в общем то тривиальная... но тем не менее...
С# vs2005
Есть два класса один, csGChart который предназначен для отображения вских графиков и проч....
есть также класс csGreed который занимается локальной задачей — отрисовать сетку и соответственно подписи к ней...
объект класса csGreed создается в классе csGChart(так как является по смыслу составной частью всего отображения графика)
НО — для того что бы подписать правильно шкалу нужна информация которая содержится в csGreed (например при сколировании графика занчения шкалы должны менятся... насколько график сдвинут знает csGChart)
Каким образом csGreed может получить эту информацию???
пробовал делегаты, т.е. в csGreed
объявлял делегат
public delegate float StartPosRequestHandler(object sender);
в нем же внутри функции drawGreed создавал экземпляр
private void drawGreed(Graphics gridDrawer)
{
StartPosRequestHandler myH = new StartPosRequestHandler(csGChart.myfunc);
...
...
}
соответственно в csGChart реализовывал функцию которая и возращает вожделеннный float
static public float myfunc(object sender)
{
return 0;
}
однако что б ее было видно из объекта класса csGreed в классе csGChart ее надо делать статичесой, соответственно в ней нельзя использовать переменные которые будут только в объет — в общем такй подход — не арботает.....
как правильно разрешить эту ситуацию ???
Если я все правильно понял, то почему не сделать так:
class csGChart
{
....
public float Position;
public csGreed greed;
}
static void Main()
{
...
csGChart chart = new csGHart();
...
chart.greed.ChartPos = chart.Position;
...
}
Ну это так совсем по простетски. конечно если надо то реализуй через свойства и данные сделай скрытыми ну и так далее!
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, eJack, Вы писали:
J>Если я все правильно понял, то почему не сделать так:
J>class csGChart
J>{
J>....
J>public float Position;
J>public csGreed greed;
J>}
J>static void Main()
J>{
J>...
J>csGChart chart = new csGHart();
J>...
J>chart.greed.ChartPos = chart.Position;
J>...
J>}
J>Ну это так совсем по простетски. конечно если надо то реализуй через свойства и данные сделай скрытыми ну и так далее!
J>
данное сообщение получено с www.gotdotnet.ru
J>ссылка на оригинальное сообщение
Спасибо, блин как говорится все гениальное просто....