アフィリエイト広告を利用しています

2024年05月08日

C#の基礎について

 こんにちは、皆さん。今日は、「C#の基礎」について、お話ししたいと思います。と言っても、そんなに詳しくは出来きませんが。

 実は、プログラム言語というのは、非常に膨大な項目があるので、何から勉強すれば良いのか分からないと思います。一般的には、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#の基礎」です。参考にして貰えれば、幸いです。それではこの辺で、ごきげんよう。



【このカテゴリーの最新記事】
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/12541428
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
プロフィール
eimanapさんの画像
eimanap

  は、結構好きな色なんです。
は、流石に心が洗われますね。

プロフィール
<< 2025年01月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
最新記事
検索
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ