static class StaCls { public static int staInt; private static int i; } これはOK メインフォームからも int i = StaCls.staInt; で使えます。 しかし、StaCls中で設定ファイルを読み込むメソッドを作ろうとして public void readXML() { } を追加したところ 「静的クラスでインスタンスメンバを宣言することはできません」 というエラーで終わり。
static class StaCls { public static int staInt; private static int i; static StaCls() {// 静的コンストラクタ staInt = 88; i = half(staInt); } public static int ID {//プロパティ get { return i; } } public static int Nibai(int x) {//広域関数 return x * 2; } private static int half(int y) {//プライベート関数 int w; w = staInt / 2; return w; } } 呼び出し方 public partial class Form1 : Form { int i = StaCls.staInt;
public Form1() { InitializeComponent(); int j; j = StaCls.Nibai(6); j = StaCls.ID; }
分類:[.NET]
基本的なことですが、よろしくお願いします。
Static なClassを使おうと思いました。
プロジェクト中で1つしか作成されないので、プログラムの初期設定変数や、広域変数を初期設定ファイルから読み込んで、すべてのクラスから使えたら便利と思ったわけです。
static class StaCls
{
public static int staInt;
private static int i;
}
これはOK
メインフォームからも
int i = StaCls.staInt;
で使えます。
しかし、StaCls中で設定ファイルを読み込むメソッドを作ろうとして
public void readXML()
{
}
を追加したところ
「静的クラスでインスタンスメンバを宣言することはできません」
というエラーで終わり。
ということは
・StaticなClassは変数しか定義できない
・広域変数という使い道しかない
という結論でいいのでしょうか