C# 入門講座 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
2022/1/23
この記事が対象とする製品・バージョン
![]() |
Visual Studio 2022 | ◎ | 対象です。 |
![]() |
Visual Studio 2019 | ◎ | 対象です。 |
![]() |
Visual Studio 2017 | ◎ | 対象ですが少し異なる場合があります。 |
![]() |
Visual Studio 2015 | ◎ | 対象ですが少し異なる場合があります。 |
![]() |
Visual Studio 2013 | ◎ | 対象ですが少し異なる場合があります。 |
![]() |
Visual Studio 2012 | ○ | 対象ですがそこそこ異なる場合があります。 |
![]() |
Visual Studio 2010 | ○ | 対象ですがそこそこ異なる場合があります。 |
![]() |
Visual Studio 2008 | ○ | 対象ですがそこそこ異なる場合があります。 |
![]() |
Visual Studio 2005 | ○ | 対象ですがそこそこ異なる場合があります。 |
![]() |
Visual Studio 2003 | △ | 対象外ですがほとんどの操作は同じなので参考になります。 |
![]() |
Visual Studio (2002) | △ | 対象外ですがほとんどの操作は同じなので参考になります。 |
目次
C#は有名なプログラム言語なので、書籍・WEB・ヘルプなどいろいろなところから情報を入手できます。
今回は最も基本的で信頼できる情報源であるヘルプの使い方を説明します。
自分で情報を収集する手段がわかっていないといつまでたってもできることが増えません。ヘルプは第一線で活躍するプロの人にとってもなくてはならない情報源です。
プログラムに出てくるさまざまなキーワードのヘルプは F1 キーを押すと表示されます。
通常、 ヘルプはWebブラウザーがWebサイトにアクセスする形で表示されるので、利用するには原則としてインターネットに接続している必要があります。なにかの事情でインターネットに接続できない環境でヘルプを見る方法については後で言及します。
たとえば、入門講座でも良く使っている MessageBox.Show のヘルプを見るには、コードエディターで Show のところにテキスト入力のカーソル I がある状態で F1 キーを押します。
この画像のようにS h o wのどこかに I 型のカーソルがある状態です。この画像では o と w の間にカーソルがあります。
ブラウザーが起動して次のような画面が表示されると思います。
このような機能を説明するドキュメントのことを「リファレンス」と呼びます。
新しいバージョンが出たばかりのころなどは日本語のヘルプが用意されていなくて英語版が表示されることがあります。
そういうときは画面左上の「バージョン」欄で少し古いフレームワークを選択します。だいたいの機能はフレームワークのバージョンが少しくらい古くても変わらないのでそのまま参考になります。
私が2022年1月15日試したところF1を押すと次のように英語版のヘルプが表示され、バージョン欄には「Windows Desktop 6」と表示されていました。
このぺージよく見ると、ページの上の方の情報は日本語で表示されていますから、日本語で情報を表示したいということは伝わっています。
この場合バージョン欄で .NET の .NET 6 に切り替えるとちゃんと日本語のヘルプが表示されました。
次の順序で日本語の情報が見つかるまでバージョンを下げていくとよいでしょう。
.NET 6 → .NET 5 → .NET Framework 4.8 → .NET Framework 4.7
過去のバージョンには存在しない機能や、機能が追加されている機能なども当然ありますが、ほとんどの場合問題ないのではないかと思います。
「オーバーロード」(Overloads)というところには、Showメソッドの使い方がいろいろ載っています。一番上の「指定したテキストを表示するメッセージボックスを表示します。」と書いてある見出し(= 左側の Show(String) と書いてある部分) をクリックすると、この使い方の詳細が表示されます。
構文や使用例が C# 以外の言語で表示されている場合は、ヘッダーで切り替えることができます。
入門講座の時点ではまだまだよくわからない情報がたくさん書いてあると思いますが、ちょっと読んでみてください。いくつか役に立つ情報は拾うことができると思います。
下の方にスクロールしていくと 複雑な使い方をするサンプルも掲載されており、とりあえずコピーして自分のプロジェクトに貼り付ければ動作するのでありがたいです。
たとえば、例の1つをButton1_Clickにコピーして実行してみると、ヘルプのアイコンやボタンがついたメッセージボックスが表示されました。
private void button1_Click(object sender, EventArgs e)
{
DialogResult r3 = MessageBox.Show("Message with Help file and Help navigator.",
"Help Caption", MessageBoxButtons.OK,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1,
0, "mspaint.chm",
HelpNavigator.Index);
}
こういう使い方もあるんです。
このように、最初はよくわからなくても例を実際に動かしながら説明を読んでいけば自分1人でどんどん知識が身についていきます。
「よくわからないから読まない」となってしまう人が多いのですが、そうではなく、わからなくても読んでみる癖をつけましょう。
この調子でほとんどのキーワードのヘルプが見られます。private voidなどいつも自動生成されるけどまだ意味を説明していないキーワードもヘルプで意味を確認できます。でも、こちらは難しいので現段階ではほとんど理解できないと思います。
このようにF1はそのキーを押したときの状況に応じたヘルプを表示してくれます。これを状況依存ヘルプと呼びます。
たとえば、プロパティウィンドウでプロパティをクリックしてから F1 を押すとそのプロパティのヘルプが表示されます。
[表示]メニューの[エラー一覧]で表示される、エラー一覧では行を選択して F1 を押すと…
そのエラーを説明したヘルプが表示されます。
エラー一覧のコード欄(上の画像だと CS1002)をクリックしてもこのヘルプが表示されます。
ただ、またしても英語が表示されました。先ほどと違いページ上部の情報も英語ですし、フレームワークのバージョンを切り替えるところもありません。
この場合、私はブラウザーのアドレスバーにある en-us という部分を ja-jp に変えます。これだけで日本語になります。
一応ページを一番下までスクロールすると左側に言語を設定できるところがあるので、これを English から 日本語 に切り替えても同じです。
このような感じで日本語で読める場合も多いのですが、ちょっと不親切なんですよね。
Visual Studioのバージョンが古いとエラー一覧から直接ヘルプを表示することができず、Bingの検索画面が表示されるという段階を経ることになるようです。
F1を押して状況ごとにヘルプを見るのではなく、あらかじめドキュメント一式を読んでおきたい人や、C#にはどんなキーワードがあるのかキーワードの一覧が見たい人もいるでしょう。
私も(C#には慣れてしまいましたが)新しいプログラミング言語で開発するときなどはキーワードの一覧を見てどんな機能が用意されているのか自分で確認したいたちです。
C# のヘルプはこのサイトにまとめられています。
https://docs.microsoft.com/ja-jp/
このサイトにはC#だけではなくWindowsやOfficeやVBなどマイクロソフトのさまざまな製品のドキュメントが集められています。
どういう状況になっているか少し案内しましょう。
まず、トップページはこちらです。
Webサイトなのでデザインや内容はどんどん変わっていくと思いますが、2022年1月現在トップページは以下のようになっています。
すぐにわかるように.NET や C# や Windows・Visual Studioなどさまざまなカテゴリーのドキュメントがあります。
C# をクリックするとC# 関連のドキュメントが表示されます。
このページには「C#を学ぶ」や「C#のツアー」、「C# 初心者向けビデオシリーズ」などC#関連のお勧めのリンクがいろいろあるので、興味のある項目があれば、クリックして中を覗いてみるのもよいでしょう。ただ、残念なことにビデオシリーズは英語です…。
他にもクリックすると英語で表示されるコンテンツがありますが、前述した方法で日本で表示できる場合もあります。もう1度繰り返すとブラウザーのアドレスバーのURLに en-us が含まれる場合、ここを ja-jp にすると日本語でコンテンツを表示できる場合もあるということです。
たとえば、「自習型のチュートリアル」というリンクをクリックすると英語のページが表示されます。ブラウザーのアドレスバーに表示されるURLは次の通りです。
このURLには en-us が含まれているので ja-jp に直して enter を押すと日本語のコンテンツに切り替わります。
日本語のコンテンツに切り替えられる場合は、ページの一番下の左側の English というリンクをクリックして 日本語を選択することで日本語に切り替えることもできます。
さて、体系だったヘルプは 左側の目次は展開して表示できます。
C#のキーワードの一覧は言語リファレンス > Keywords と展開すると見られます。
アルファベット順などでばーっとキーワードが並んでいるわけではなく、カテゴリーに分類されています。
keywords直下にある、「概要」をクリックすると、一覧のような形式で眺めることもできます。好奇心があればさらに深く潜ってどんなキーワードがあるのか簡単に見てみるのも悪くないです。
言語リファレンス以外にもさまざまな技術ドキュメントがあり、ためしに読んでみるのならばリファレンス以外にも範囲を広げてつまみ食いしてみるのは良いと思います。入門講座を読んでいる読者の方にはどのドキュメントを見ても難しいとは思いますが、どんなドキュメントがあるのかなと把握しておけば、後で困ったときに「そういえば、あそこに何か書いてあった」というように思い出すことができます。それに、よくわからなくてもサンプルも豊富に掲載されているので、とりあえず動かしてみながら慣れていくということもできます。
C#でプログラムするときは.NET (ドットネット) や .NET Framework(ドットネット フレームワーク)のような何かしらのフレームワークを使っていますから、技術情報を探す場合、C#の技術情報だけではなくフレームワークの技術情報も捜す必要があります。
Visual Studio 2019/2022では、最初にプロジェクトをテンプレートから作成するときに使用するフレームワークを選択します。
プロジェクトのプロパティを見て後から あなたのアプリケーションが使用しているフレームワークを再確認することもできます。
[プロジェクト]メニューから (プロジェクト名)のプロパティ (たとえば WinFormsApp1のプロパティ)をクリックすると表示できます。
Visual Studio 2022では次のような画面が開きます。ターゲットフレームワーク欄にあるのが、そのプロジェクトで使用しているフレームワークです。この画像の場合、.NET 6.0 (.NET 6とも記述します)を使用しています。
Visual Studio 2022の場合、ソリューションエクスプローラーでプロジェクトをダブルクリックするとテキスト形式でフレームワークを確認できます。こちらの方が手軽ですが、少し知識がないと書いてある意味を理解できないかもしれません。
Visual Studio 2019以前だとプロジェクトのプロパティは次のような画面で表示されます。 下記の画像の場合だと使用しているフレームワークは .NET Framework 4.7.2です。
フレームワークとは何でしょうか?
簡単に言えば、実行環境の機能の集合体です。C#でのプログラミングの大部分は C#を使ったフレームワークへの命令なのです。
たとえば、MessageBox.Showは C# の機能ではなく、.NET 6.0 などのフレームワークの機能です。C#を使って.NET 6.0 のMessageBoxクラスに命令を出しているわけです。
C#の場合、兄弟言語にVBがあります。C#でもVBでもプログラミング言語は違っても使いたいWindowsやiPhoneの機能は同じですよね。マイクロソフトはC#用の機能とVB用の機能を別々に用意するのではなく、対応しているどのプログラミング言語からでも使用できる機能の集合をフレームワークとして定義しました。
C#やVBで扱えるフレームワークには下記のようなものがあります。
・.NET (ドットネット)
2022年現在、C#の主要なフレームワークです。Windows・Linux・MacOSなどで動作します。2020年にリリースされた .NET 5 が最初のバージョンです。
バージョン 3.1 までは 「.NET Core」と呼ばれていました。名前が変わっただけで.NET Coreとは新旧の関係です。なお、バージョン4は存在せず、.NET Core 3.1 の次のバージョンが .NET 5です。
・.NET Core (ドットネットコア)
2019年にリリースされたバージョン 3.1 が最後です。これ以降 「.NET」 に名前が変わりました。
・.NET Framework (ドットネットフレームワーク)
2002年にリリースされた C#が対応している最初のフレームワークです。今では過去のものとなっているので新しく作成するプログラムではまず使用することはありません。Windows上でのみ動作します。もともとはC#やVBには.NET Frameworkしか選択肢はありませんでした。2019年にリリースされた4.8が最後のバージョンです。
これらをまとめてこの記事では .NET (ドットネット)と呼ぶことにしましょう。.NETという言葉の意味は時代によって変わっており、2020年にはフレームワークの名前にもなってしまいましたが、それ以前(2002年ごろ)からあった言葉です。今(2022年)でもこの言葉の意味は少しあいまいなのですが、全部ひっくるめた一番大きな概念と思えばとりあえずしっくりきます。
これらのフレームワークは全然異なる別物というわけではなく、基本的な機能やオブジェクトは共有しています。そのためサンプルレベルのプログラムであればあとでプロパティ画面でフレームワークを変更しても動作することが多いです。
もちろん高度な機能はフレームワークによる差があります。.NET 6.0 ではできることが、.NET Frameworkではできないということもありますしその逆もあります。
というわけで、Windowsフォームアプリで使用するButtonのTextプロパティやBackColorプロパティの情報を確認してみましょう。
トップページの製品ディレクトリで .NET のリンクをクリックします。
.NETのドキュメントのページが開きます。一番下に次のような APIと言語リファレンスがあります。
この中で 「.NET API リファレンス」をクリックすると、.NET API ブラウザー というページが開き.NETと.NET Coreの情報を表示できます。
ここで、検索したりリンクを辿って目的の情報を探すことができますが、量が多いのとカテゴリー化されているのとでかなり難しいです。
最初に説明した F1 を使った状況依存ヘルプで目的のページにジャンプするのが一番良い方法ですが、今回はあえてこの.NET API ブラウザーを使ってButtonのTextプロパティを探してみましょう。
まず、Windowsフォームアプリの情報を表示したい場合は、検索欄の上にあるフレームワークをWindows Desktop 6.0 に切り替えます。
Windowsフォームアプリは .NET 6.0 に含まれているのですが、マイクロソフトは.NET 6.0の中を機能ごとにわけて分類しています。(これが知らない人にはわかりにくい。私もわかりにくいです。)。
フレームワーク内の膨大な機能はさらに「名前空間」というフォルダーのようなカテゴリーで分類されています。Button は「System.Windows.Forms」(システム ウィンドウズ フォームズ)という名前空間に属しています。(これもよく知らない人にはわかりにくいですが、名前空間については知識が増えるとわかってきます。初級講座で説明します。)
というわけで、下のリンクの一覧から System.Windows.Forms をクリックします。
これでSystem.Windows.Forms名前空間に属しているクラス等の一覧が表示されます。入門講座の段階ではクラス等とはオブジェクトのようなものと理解しておいてください。
Buttonのプロパティを調べたいので一覧からButtonをクリックしましょう。
これでButtonのヘルプが表示されます。
この中にプロパティの一覧があり、Textプロパティへのリンクもあります。
が、既にお気づきのように英語で表示されているのが気に入らないかもしれませんね。これを日本語化する方法はMessageBoxのところで前述したとおりです。
つまり、フレームワークのバージョンを .NET 6 に切り替えます。前述の画像を再掲します。
こうなってくると、なんで .NET 6 に切り替えたり、Windows Desktop 6.0 に切り替えたりいちいちしないといけないのかわけがわかりません。
私の想像ですが、.NETの機能は膨大すぎるうえに、どんどん新しい機能が追加され、マイクロソフトのドキュメントの整理・準備が追いついていないのだと思います。切り替える手間はかかりますが、それでもドキュメントがちゃんとあるというだけでもありがたいのかもしれません。
ところでマイクロソフトのWebサイトににはいろいろなコンテンツがあり、学習の役に立ちます。C#のことは少し忘れてどんなコンテンツがあるのか探検してみましょう。
はじめにはっきり言っておきます。入門者向けのコンテンツは少ないです。
またコンテンツの数はとても多いのですが、マイクロソフトの製品や技術の数が膨大すぎて、「自分が知りたいと思っている分野」を「自分のレベルに合わせて説明しているコンテンツ」、「自分が理解できる言葉(日本語?)」という条件で探すと該当がないことも珍しくありません。レベルと言葉を妥協すればたいていの情報はあります。
言い換えると入門者向けの日本語の説明資料はないということです。だから、Visual Basic 中学校のような入門者向けのサイトがあるのだとおもいます。
でも、前述しましたように、どこにどんなコンテンツがあるか知っておくのは意味のあることです。だから内容が理解できなくても1度くらい開いて見るのが良いと思います。
トップサイトにある「Learn」をクリックするとMicrosoft Learn(マイクロソフト ラーン)というサイトが表示されます。
https://docs.microsoft.com/ja-jp/learn/
このサイトではテーマごとに独学できる教材が多数用意されています。教材は随時追加されます。
このサイトでは個々の教材のことを「モジュール」と呼ぶようです。
そして複数の教材を組み合わせて順番に学習していくことで、何かを理解できるようになっています。この教材の組み合わせのことを「ラーニング パス」または単に「パス」と呼んでいるようです。
全体像は「カタログ全体を参照」というリンクから見られます。
(Webサイトのことなので、随時更新され、表現やレイアウトは変わっていくことと思います。)
https://docs.microsoft.com/ja-jp/learn/browse/
2022年1月時点では3722件のモジュールとラーニングパスがあります。
ここから検索や絞り込みをかけて自分が知りたいことに関するコンテンツがあるか調べられます。
「C#」で検索すると、33個のモジュールとラーニングパスがヒットしました。
さきほど触れたように動画のコンテンツもあります。
英語なんですが、プログラムのことですから、画面や操作を見ながら見ていればなんとかな言おうとしていることはわかるかもしれません。
Browse all shows | Microsoft Docs
以前はChannel 9というサイトで日本語の動画も配信されていたのですが、Microsoft Learnに統合されたとのこと。でも、Microsoft Learnを探しても日本語の動画は見つからない。どこに行ってしまったのでしょう??一応当時のリンクだけ貼っておきます。
Channel 9
https://channel9.msdn.com/Browse/AllContent?sort=recent&lang=ja
MSDNマガジンはWebで無料で公開されたいた上級者向けの月刊誌なのですが、2019年11月に廃刊になってしまいました。
それでも優れたコンテンツが今でも役に立ちます。そして、日本語です! (古いバックナンバーは英語です)
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/msdn-magazine-issues
たとえば、2019年7月の目次は、「ASP.NET Core での AI 搭載の生体認証セキュリティ」、「Docker によるコンテナー化アプリでの EF Core (パート 3)」、「MSIX:Windows でデスクトップ アプリを展開するための最新の方法」、「.NET での音声合成」など。難しそうですけど、なんだか夢があってわくわくしてきますね。
マイクロソフトのサイトではありませんが、このVisual Basic中学校にもC#向けコンテンツがありますので、よろしければ参考にしてください。
C#のサンプル集
C#などの質問ができる掲示板
インターネットにつながっていない環境でヘルプを見るには、ヘルプビューアーをインストールして、ヘルプ用のコンテンツをインポートします。
インターネットでヘルプを見るのが通常なので、何か特別な事情がない限りオフラインでヘルプを見ることは推奨しません。コンテンツも古い見たいですし、日本語がなかったりしますし。これをやっている人は少数派なので、実際にやろうとすると他の人が苦労していない苦労を余計にすることになるでしょう。
また、この方法では最低1度はコンテンツをダウンロードする必要があるので、どこか別のパソコンでダウンロードしたコンテンツをコピーしてくるなど、外部からコンテンツを入手する必要はあります。
それでも、どうしても事情がある場合のために簡単に概要を説明します。
Visual Studio 2022/2019の場合、ヘルプビューアーはVisual Studio をインストールするときに個別のコンポーネントから選択することでインストールされます。
Visual Studioインストール後に追加するには [ツール]メニューの[ツールと機能を取得]をクリックします。
ヘルプビューアーがインストールされていると[ヘルプ]メニューでヘルプの設定項目が増えて、[ヘルプ設定の設定]から、ブラウザーではなくヘルプビューアーを使用してヘルプを表示するようにできます。
はじめて「ヘルプビューアーで起動」を選択すると、日本語のコンテンツをダウンロードするか聞かれるので、「はい」を選択しましょう。
2,3分待つと ダウンロードできるコンテンツの一覧が表示されます。ここでヘルプで見たいコンテンツをローカルにダウンロードしましょう。
インターネットにまったく接続できない環境の場合は、このダウンロードを別のパソコンでやっておいて、ヘルプを見たい環境にコンテンツをコピー等して、その後、下の画面の「インストール元」欄で「ディスク」を選択してコンテンツをインストールすることになります。
ただ…、上の画像はVisual Studio 2022から操作したものなのですが、何か、コンテンツが「2015」とか書いてあってやけに古かったり、英語版しかなかったりと不満だらけです。Microsoftはここに力を入れてくれていないみたいですね。
次の回では、Visual Studioのプログラミング支援機能を説明します。