これまで「鳩でも分かる」をコンセプトにブログを書き続けてきましたが、「はて?これって本当に鳩でもわかるのだろうか?」と思うようになりました。そこで、今回は本当に鳩でもわかるC#入門の記事を書くことにします。

ここで作ろうとしているのはボタンをクリックするとウィンドウの背景色が変化するというあまりにも地味なアプリケーションです。

つまらん、こんなものはプログラムとはいえない

きっとあなたはそう思ったかもしれません。しかし考えてみてほしいのです。世の中に存在する面白い物、役に立つものはそれだけではつまらなく面白くないものを組み合わせることで作られているのです。これは私の信念でもあるのでもう一度繰り返します。

世の中に存在する面白い物、役に立つものはそれだけではつまらなく面白くないものを組み合わせることで作られている

だから地味なもの、つまらなさそうなものをないがしろにしてほしくありません。このような地味でつまらなさそうなものを組み合わせることで初心者であっても簡単なゲームであれば作れるようになります。

こんなゲームも作れるのですが、どうでしょうか?

え? やっぱりつまらない? それではしかたないですね。鳩とは縁がなかったということで・・・。

ではなくて、これは鳩のレベルが低いからこんなゲームしか作れないのであってあなたならきっとプログラミングを習得することでもっと面白いゲームをつくることができるようになりますよ。

ということで、しばらく鳩の戯言にお付き合いください。

プログラミングをするだけなら高性能なパソコンは不要

プログラミングをするのであれば高性能なパソコンが必要ではないのか?と考えていないでしょうか? たしかに作るものによっては高性能でなければならない場合がありますが、普通のパソコンで動くものを作るのであれば普通のパソコンで充分です。ネットショップに売っている中古のパソコンでかまいません。実店舗で買おうとすると高くつきます。楽天市場とかYahoo!ショッピングで探すのがおすすめです。

中古でOK

私が使っているパソコンのスペックはThinkPad X230です。販売当初は\163,800(新品)もしますが、いまなら中古で安く手に入れることができます。3万円くらいだったかな。いまはもっと安くなっています。CPUはCore i5-3320M、メモリーはオプションで4GBから8GBに増やしてもらいました。

SSD換装は必須

大事なのはHDDではなくSSDであることです。HDD(ハードディスクドライブ)は安価ではありますが、アクセス速度が遅すぎます。そこでSSDに換装してあるものを選ぶか自分でSSDに交換しましょう。HDDではVisualStudioが起動するまでに2分から3分もかかってしまいます。しかしSSDならすぐに起動します。

自分で改造する必要はない

自分で部品を買ってきて交換して最強のマシンをつくる。これができるのは上級者です。しかしそんなことはできなくてかまいません。購入時のオプションを利用しましょう。そうすれば苦労することなくメモリーを増やしたりHDDからSSDへの換装が実現できます。

ということでまとめると、

パソコンは中古のものでよい
Windows11 または Windows10(64bit)が動くこと
SSD換装は必須
メモリーは最低8GBはほしい

です。

Visual Studio Communityなら無料

さてパソコンがすでに用意されているのであれば環境構築をします。

何事も最初がもっとも困難です。多くの人が最初の一歩すら踏み出しません。そして一歩を踏み出したわずかな人たちの大部分が最初の一歩で盛大にコケます。そして挫折しあきらめてしまいます。

プログラミングも同じでもっとも困難でもっとも大きな挫折する原因となるのが環境構築です。「ソフトをインストールしないといけないけどやりかたがわからないからやーめた!」なんてよくある話です。

ここではVisualStudioというソフトを使用します。もちろん有料のものを買えなんてバカなことは言いません。有料のものもあるのですが、Visual Studio Communityなら無料で使えます。

Visual Studio Professionalエディション相当の機能を無償で利用できますが、以下に該当するユーザーおよび組織のみが対象です。。

個人開発者
大学関係者
非営利団体従事者
オープンソース開発者
開発者5名以下の中小企業(PC台数250台未満もしくはユーザー数250人未満、かつ年間収益100万米国ドル未満の企業)

つまり個人で使うのであれば問題ないですね。大企業の社長さんでも会社の業務として使うのではなく、プログラミングが面白そうなので趣味でやってみるというのであれば個人開発者でしかありません。

Visual Studio 2022 for Windows および Mac のダウンロード

インストーラーが起動するとここからどれをインストールするかを選択できます。欲張って全部インストールしてもいいのですが、とりあえずC#でWindowsフォームのデスクトップアプリケーションをつくってみたいというのであれば「.NET デスクトップ開発」を選択しましょう。あとになって他の物をインストールしたくなった場合も、ここから追加でインストールできます。

ところでこのVisual Studioのインストールに対する心理的障壁は想像以上に高いようです。たしかにインストールに時間がかかり、Cドライブの空きも必要です。でもやっぱり最初はなんでも難しく感じるので、あまり難しく考えすぎて何もできない・・・なんてことにならないように気楽に考えましょう。心配しなくてもパソコンが壊れることはありませんから。

早速使ってみる

インストールが終わったら起動してみましょう。「新しいプロジェクトの作成」を選択して、「Winndows フォームアプリ」を選択、ターゲットフレームワークは「.NET8.0」(なければ「長期的サポート」と書いてあるもの)を選択します。

このような表示がされたら「ツールボックス」を選択。もしツールボックスが表示されていない場合は上のメニューから表示 ⇒ ツールボックスを選択するか、AltキーとCtrlキーを押しながらxキーを押せば表示されるはずです。

ツールボックスからボタンを選択し、これを表示されているフォームの上にドラッグアンドドロップしてください。するとこうなるはずです。

このボタンはウィンドウを操作するときのようにドラッグすれば位置を変えられるし、境界をドラッグすれば大きさを変えることもできます。

またプロパティを選択してその項目のなかからTextの項目を変更するとボタンに書かれている文字列を変更することもできます。

ボタンを選択した状態でプロパティを変更するとこんなこともできます。ボタンの大きさを変更して、TextとFont、ForeColorを変更しました。

では上側にあるメニュー デバッグ ⇒ デバッグなしで開始を選択してください。

このように表示されるはずです。

ではボタンをクリックしてみましょう。クリックしても何もおきません。いまはボタンをクリックしたときに行われる処理についてなにも定義していません。だからなにも起きないのです。

イベントハンドラを追加してみる

イベントハンドラ(event handler)とは特定の出来事(イベント)が発生した時に実行するよう定められた処理のことです。ボタンがクリックされるのもイベントのひとつです。ボタンがクリックされたときに実行させたい処理を追加してみましょう。

上記で実行状態にあるプログラムは終了して、Visual Studioに戻りましょう。そしてフォームに貼り付けたボタンをダブルクリックしてください。すると以下のような表示がされるはずです。

上のコードの以下の部分、ここがボタンが押されたら実行される処理です。いまはなにも書かれていません。

ここに

と書きます。そしてもう一度 デバッグ ⇒ デバッグなしで開始を選択してください。そして表示されたフォームのボタンをクリックすると背景が赤く変わるはずです。

しかしそのあとは何回ボタンを押してもなにもおきません。「ボタンがクリックされたらフォームの背景色を赤に変更せよ」と書いただけで、それ以外のことはなにも書いていないからです。すでに背景色が赤になっていればなにも起きないようにみえます。

ボタンをクリックするたびに背景色が変化する

ではもうちょっと複雑なものをつくってみましょう。ボタンを押すたびに色が変わったら面白いと思いませんか? お願いです。面白いと言ってください・・・。

先ほど書き換えた部分をさらに以下のように書き換えてください。

これは「もしフォームの背景色が赤であれば青くしろ、そうでないなら赤くしろ」という意味になります。フォームの背景色は最初は赤ではないので else の下に書かれている部分が実行されて背景色が赤に変わります。もう一度ボタンをクリックすると背景色は赤なのでthis.BackColor = Color.Blue;の部分が実行されて背景色は青くなります。

ifのあと、elseのあとが1行しかない場合は{}は省略できる。

ではもっと他の色にもしてみたいと思って以下のようなコードを書くと失敗します。

このコードを実行してボタンをおしても赤と黄色以外の色にはなりません。

実は背景色が赤のときにクリックすると青に変わるのですが、その直後にまた「青であるなら緑にしろ」、さらにその後ろには「緑であるなら黄色にしろ」と書いているので一瞬青と緑になるのですが、赤と黄色を繰り返しているようにしかみえないのです。

ではどうすればいいのでしょうか?

条件式が3つある場合の例ですが、このelse ifはいくつでも重ねることができます。

ということで

このように書けばボタンをクリックするたびに 赤 ⇒ 青 ⇒ 緑 ⇒ 黄色 ⇒ 赤とエンドレスで繰り返すことができます。

今回は超初心者向けの内容ですが、どうだったでしょうか? プログラミングはぜんぜんわからんけど・・・とふらっと当ブログに訪問した方が「おもしろそうだな」「プログラミングは難しそうだけどC#ならできそう」と思っていただければなによりも幸いです。

あと少しだけスクロールして[関連記事]のリンクも見ていただけないでしょうか?簡単なゲームなら作れるようになります。