
[code]

    class playerstatus{
        public static　int coin=100;
    }
    
    class sample {
        cointext.text = "coins: " + playerstatus.coin.ToString();
    }
    
[/code]

こうするとcs0176がでて`Static member 'playerstatus.coin' cannot be accessed with an
instance reference, qualify it with a type name instead`

これは仕様らしいのですが、他の方法はありますでしょうか


CC BY-SA 3.0
2015-11-12T12:29:23.950
18740
2016-02-10T20:45:36.937
2015-11-12T14:14:56.077
9268
9268
question
c# unity3d
C#でインスタンスを通してstaticメソッドを呼べない


`cointext.text = "coins: " + playerstatus.coin.ToString();`
の部分が文脈的に書けない（クラス内の地の文としては書けない）ので質問内容を再現するようなコードになっていません。  
以下のコードは期待するように実行できますから実際のコードとは異なる（インスタンスからの呼び出しをしていない）ように思います。

[code]

    using System;
    
    class playerstatus{
        public static int coin=100;
    }
    
    class sample
    {
        static void Main(string[] args)
        {
            string text = "coins: " + playerstatus.coin.ToString();//文字列との結合で変換されるのでToString()は必要無い
            Console.WriteLine(text);
            /* おそらく質問者の状況はこういうことをしていると思われる
            playerstatus p = new playerstatus();
            Console.WriteLine(p.coin);//coin はインスタンスのメンバーではないのでできない。スタティックなメンバーはクラス名から呼び出す。（エラーメッセージの通り）
            */
        }
    }
    
[/code]


CC BY-SA 3.0
2015-11-12T19:09:44.850
18758
2015-11-12T19:20:34.270
2015-11-12T19:20:34.270
5044
5044
18740
answer