2011-02-09 8 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:
[OK]を、今私は(私のコードのように)こんにちはにfooに何かを割り当てたいとします。私はこれがナンセンスのように聞こえるかもしれないことを知っているので、それも可能であるかどうかはわかりません。

+1

これはなんですか? C++またはC#? – GManNickG

答えて

2

あなたはstaticメンバ関数を必要としています。 staticメンバー関数は、クラスのクラス自体にアクセスする場合に必要な、特定のインスタンスのに関連付けられていません。詳細はC++やC#のどちらに興味があるかによって多少異なります。

+0

Hello()でfooを使用できないのですか? – BlackBear

+0

@BlackBear:いいえ、 'foo'は静的でないためです。すなわち、「Abc」の各インスタンスはそれ自身のコピーを有する。 'Abc.Hello()'を実行した場合、 'foo'のどのコピーにアクセスしますか? –

0

Hello()を静的にします。それはクラスのインスタンス化を必要としません。

public static void Hello() { ...

関連する問題