C#初心者備忘録1

C#を学習していて初心者が思ったことを書いていく。

メソッドってクラスの変数を使わずに引数にしか依存しないものがある。だから、そういうメソッドをクラスの外に単独で記述したいと思った。つまり、メソッドをグロバール空間(?)に書いて、どこからでもアクセスできるようにしたい。残念ながら、オブジェクト指向ではメソッドは必ず何らかのクラスの中に記述されてる必要があるみたい。それなら、汎用的なメソッドを持ったクラスを作って、usingでそのクラスのショートカットみたいなの作る方法を思いついた。ただし、メソッドにstaticをつけている必要あり。クラスにはつけなくていい。まあ、汎用的なメソッドを集めたクラスなら、すべてのメソッドとクラスをstaticにしてた方がいいのか。

というかこれってモジュールと呼ばれるものか。

 

それでstaticについて分からなくなってきた。staticなクラスは変数もstatic。ということは、生成したオブジェクトをstaticクラスの変数に代入できないのか。staticなクラスはプログラムの初めに作られるらしいから、後の処理であるオブジェクトの生成が間に合うわけがない。でも、それは不便すぎる。どうしたらいいんだ。と悩んでいたら、staticクラスにはstaticコンストラクタがあるみたいで、その中ならオブジェクトを生成できるみたい。

あと、インデクサーはstaticクラスでは作れないことが分かった。なぜかは知らない。だけど、これだとstaticクラスは配列のように扱えないので不便だなあ。