みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C#とjavaのstatic

public static Final int a = 1;
というjavaのプログラムをC#で
public static const int a = 1;
に書き換えたらstaticは無理というエラーがでました。

C#とjavaの比較の説明サイトを2・3見たのですが、よく意味がわかりませんでした。
なぜC#ではstaticにできないのでしょうか?

投稿日時 - 2014-10-26 01:31:22

QNo.8803216

困ってます

質問者が選んだベストアンサー

MSDN を調べたら以下の記述が見つかりました。

「フィールドを static const として宣言することはできませんが、const フィールドは、その動作において本質的に静的です。 const フィールドは、型のインスタンスではなく型に属します。 そのため、const フィールドにアクセスするには、静的フィールドに対して使用するのと同じ ClassName.MemberName 表記法を使用します。 オブジェクト インスタンスは必要ありません」
http://msdn.microsoft.com/ja-jp/library/79b3xss3.aspx

つまりフィールド変数の場合(ちょっと問題のある記述かもしれませんが)const(C#) == static final(Java)という事になります。

const の使用例の ConstTest でも生成したインスタンスを通して const 変数を使った後にクラス名から直接 const 変数を使っています。
http://msdn.microsoft.com/ja-jp/library/e6w8fe1b.aspx

……というか、C# の話なんだから第三者の比較説明サイトよりもまず総本山の MSDN を調べようよw

投稿日時 - 2014-10-26 02:29:50

お礼

ありがとうございます。

大変よくわかりました。

投稿日時 - 2014-10-26 11:57:40

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問