実は、プログラム言語というのは、非常に膨大な項目があるので、何から勉強すれば良いのか分からないと思います。一般的には、C#の場合だと、「クラス」とか「Form」とか「各コントロール」とかに、先ず注目が行くと思います。
しかし、それらを幾ら見たり読んだりしても、基礎の部分が分からないと、中々頭や体感として、理解できないと思います。或いは、何が分からないのかが、分からない事もあるでしょう。
ところが基礎が分かると、今まで分からなかった事が、霧が晴れたように分かる時があります。「何だ、そうだったのか!」という感じです。まぁそれでも、前途多難であることには、変わりはないのですが(笑)。
それでは、私が思う「C#の基礎」についてですが、次の3つだと思います。「1.string 型、2.int 型、3.object 型」です。後、興味のある方は、「ガベージコレクション」も気になると思います。
先ず最初に、「string 型」です。これは、文字列を扱う時に使います。例えば、
string firstText = "あいうえお";
とかです。プログラミングでは、最もよく使うものです。ただ見ていると「単純に文字列を扱う型」だなと、誰でも思いますよね。ところが、この「string 型」は、非常にユニークな構造をしています。それは、firstText というのは、唯一無二の存在だという事です。変更は出来ないのです。
firstText に文字を付け足した場合は、新しい文字列として firstText に代入(参照)されます。
firstText += "かきくけこ";
firstText = "あいうえおかきくけこ";
となります。そして、この firstText は、最初の物とは全く別のもの(参照)になります。ですから、追加される前の firstText に紐づけしている変数は、内容が更新されません。
ここが、一番難しいところなんです。この事を理解していないと、バグの解決は出来ません。それともう一つ重要な事は、この文字列の長さは、「Length」で管理されているということです。
「C言語」とかの場合は、終端文字列が「 \0 」で管理されているので、構造的に異なります。
次に、「int 型」です。これは「値型」といって、最も高速に動作する重要な事柄です。
主に、算術計算をする時に使いますが、この「値型」の最も重要な事は、「 a = b 」とした時は、「値自体のコピー」になります。そして、a と b とは、全く別のものになります。
この事が、一番重要なことなのです。つまり、a を変更しても b の値は変わりません。ですから、自由度がかなり高いということです。
また昔は、「int 型」というと、2バイトで「-32,768 〜 32,767」の範囲だったのですが、今は4バイトなので、「-2,147,483,648 〜 2,147,483,647」の範囲になります。
最後に、「object 型」です。これは、「参照型」といって、大きな容量(メモリー)が必要な時に使います。
一般的に、最も使い勝手が良く、頻繁に使います。極論をいえば、参照型だけでも良いのではと思うくらいです(笑)。兎に角、高速な処理は望めません。とは言っても、ループを何回も回す場合とかでないと、その違いが分からない位なんですが(笑)。
主に、オブジェクトへの参照に使います。「 a = b 」とした時は、何方もオブジェクトへの参照をコピーした事になります。オブジェクトというのは、領域を持った大きなメモリーで、ヒープ領域に作成されます。そして、その参照が a とか b とかに格納されます。
例えば、a の参照で変更を行うと、当然 b も同じオブジェクトを参照していますから、b にも反映されます。これが、値型と決定的に異なるところです。
ここで、最初に出てきた「string 型」を思い出して下さい。ほぼ挙動は同じなんですが、「string 型」は変更が不可能な事に対して、「object 型」は変更ができるという事です。
このことは、マニュアルや参考書の、冒頭に書かれている事なんですが、大凡見落とすと思うのです。花もないですから(笑)。しかしこの事が、一番重要なんです。
後は、プログラマーにとって一番興味のあることが、「ガベージコレクション」だと思います。使い終わったメモリーを、どう処理するかが悩ましいところです。
結論からいうと、何もしなくても構いません。というか、何もしない方が良いです。ただし、グラフィックス関係は、使用するメモリー量も多いので、「.Dispose()」をして置きましょう(笑)。
これが、「マネージド言語であるC#」の最も良いところです。つまり、プログラムの本質に専念できると言うことです。
以上が、私が思う「C#の基礎」です。参考にして貰えれば、幸いです。それではこの辺で、ごきげんよう。
【このカテゴリーの最新記事】
-
no image
-
no image