2011-02-09 3 views
0


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

class Abc 
{ 
    private float foo; 
    public float Foo { 
     get { return foo; } 
     set { foo = value; } 
    } 

    public static void Hello() { 
     foo = 5.0f; 
     Console.WriteLine("Hello everyone!"); 
    } 
} 

.... somewhere else .... 

Abc bar; 
bar.Foo = 5.0f;  // ok, I know this 
bar.Hello();   // fine, I know this too 

Abc.Hello();   // I'm trying to do this! 

EDIT:
Хорошо, теперь предположим, что я хотел бы назначить что-то foo в Hello (как в моем коде). Я знаю, что это может показаться глупостью, поэтому я не уверен, что это возможно.

+1

Э-э, что это? C++ или C#? – GManNickG

ответ

2

вам нужна функция с static члена. static функции-члены не связаны с конкретным экземпляром класса, который вам нужен, если вы хотите получить к ним доступ через класс . Специфика немного меняется в зависимости от того, интересуетесь ли вы C++ или C#.

+0

Так не могу ли я использовать foo в Hello()? – BlackBear

+0

@BlackBear: Нет, потому что 'foo' не статичен; то есть каждый экземпляр 'Abc' имеет свою собственную копию. Если вы сделали 'Abc.Hello()', какую копию 'foo' вы хотите получить? –

0

Hello() статический; таким образом, это не требует создания класса.

public static void Hello() { ...

Смежные вопросы