嘘をつきました、記事より、いただいたコメントの方が分かりやすかったです。
@albireoさんより紹介
public static partial class App
{
static public string Cnstr = ""; // グローバル変数の宣言
static public string ID= "";
public string NonStatic = "abc"; // エラーになる
//頑張って分かるやりかた。
//1、「エラーになる」と「・・・の宣言」の違いを比較する。
//2、クラス名称を別例(もう一つの例)と比較する。普通のクラス宣言とも比較する。
//3、for文やif文などで条件分岐から値を取得する場合にもCnstr、つまりグローバル変数が使える便利。
// でもクラス内だけならクラスのグローバル宣言要らない可能背があるかも?
}
//外部クラスでグローバル変数をつかう。
private void Btn_Update_Click()
{
Cconsole.WriteLine(App.Cnstr); // App で宣言されたグローバル変数を利用
}
@shiracamus さんより以下のコメントをいただきました。
一般的に「クラス変数」と呼ばれるものですね。
オブジェクト指向では、依存するクラスを減らす努力が必要です。
つまり、クラス間の依存をなくす。
何故なくすかっていうと、何も考えずに文字を羅列すると
「複数のクラスに色々またがってるから管理が面倒。かつ危険」
「このクラスって何してるん?あれ?」ってなりそう
「引継ぎの時面倒」「作り直ししたくなる」
なんだけど。何でかぐぐる。
これが分かりやすかった。と紹介しましたが・・・嘘でした。
https://w.atwiki.jp/cs00/pages/11.html
これ中身
//グローバル変数を設定。
public partial class App : Application
{
static public string Cnstr = ""; // グローバル変数の宣言
static public string ID= "";
}
//グローバル変数をつかう。
private void Btn_Update_Click()
{
App.Cnstr = "SQL"; // App で宣言されたグローバル変数を利用
}
@shiracamusさんより、
「クラスの数を複数設けないように努力する必要が有る。」というアドバイスもあり
グローバル変数用のクラスを設けなくてもいいことがわかりました。