2012-04-21 4 views
1

У меня есть класс Node, я создал свой узел дерева в моей основной так:Как сделать глобальный класс?

static void Main(string[] args) 
{ 
    Node IProot = new Node("ANY-IP");   
} 

Я хочу, чтобы иметь доступ к этому узлу все времена, даже когда я буду проходить через другую функцию (установка IProot глобальный), например, я хочу иметь

public static alarm generalize(alarm one,alarm two) 
{  
    //some code 
} 

вместо

public static alarm generalize(alarm one,alarm two,Node IProot) 
{  
    //some code 
} 

если это совершенно неправильно, что мне делать?

Поскольку у меня нет доступа к IProot, я должен получить его как входной сигнал для своей функции, чтобы я мог кодировать IProot, но мне гораздо лучше не получать его как вход. Я пробовал static Node, где я определил IProot в основном, но это привело к ошибке. Я также попробовал static class Node для своего класса, опять нет результата.

ответ

2

Попробуйте это:

static Node IProot; 

static void Main(string[] args) 
{ 
    IProot = new Node("ANY-IP"); 
} 

Это инстанцирует IProot объект в Main метод вашего приложения, и позволит, что экземпляр объекта, чтобы быть доступными в методах в своем классе.

+0

Большое спасибо приятелю :). –

0

Если generalize представляет собой метод, который может быть применен к любому объекту Node, это, вероятно, должны быть определены в классе Node вместо того, чтобы как статический метод, так как это более объектно-ориентированный подход. Тогда вы могли бы назвать это следующим образом:

IProot.generalize(one, two); 
Смежные вопросы