C# 入門講座
Visual Studio 2005 Visual Studio 2008 Visual Studio 2010 Visual Studio 2012 Visual Studio 2013 Visual Studio 2015 Visual Studio 2017 Visual Studio 2019

第8回 ヘルプの使い方

この記事が対象とする製品・バージョン (バージョンの確認方法)

VS2019 Visual Studio 2019 対象です。
VS2017 Visual Studio 2017 対象です。
VS2015 Visual Studio 2015 対象です。
VS2013 Visual Studio 2013 対象です。
VS2012 Visual Studio 2012 対象ですが一部画面が異なる場合があります。
VS2010 Visual Studio 2010 対象ですが一部画面が異なる場合があります。
VS2008 Visual Studio 2008 対象ですが一部画面が異なる場合があります。
VS2005 Visual Studio 2005 対象ですが一部画面が異なる場合があります。
VS.NET 2003 Visual Studio 2003 対象外ですがほとんどの操作は同じなので参考になります。
VS.NET 2002 Visual Studio (2002) 対象外ですがほとんどの操作は同じなので参考になります。

 

概要

・Visual Studioで F1 キーを押すだけでヘルプが見られる。

・C#のヘルプは「Microsoft Docs」に掲載されている。

・オフラインでヘルプを見る方法。

 

1.情報はどこにあるのか

C#は有名なプログラム言語なので、いろいろなところから情報を入手できます。書籍、WEB、ヘルプなどが代表的な情報源です。

今回はこの中でもヘルプの使い方を説明します。

自分で情報を収集する手段がわかっていないといつまでたってもできることが増えません。ヘルプは基本的な情報源であり、第一線で活躍するプロの人にとってもなくてはならない存在です。

 

2.MessageBox.Showの説明はどこにあるか?

2−1.F1

プログラムに出てくるさまざまなキーワードのヘルプは F1 キーを押すと表示されます。

ヘルプはWebブラウザーがWebサイトにアクセスする形で表示されるので、インターネットに接続している必要があります。オフラインでヘルプを見る方法について後で言及します。

たとえば、入門講座でも良く使っている MessageBox.Show のヘルプを見るには、コードエディターで Show のところにテキスト入力のカーソル I がある状態で F1 キーを押します。

この画像のようにS h o wのどこかに I 型のカーソルがある状態です。この画像では o と w の間にカーソルがあります。

Showのどこかにテキストのカーソルがある状態

ブラウザーが起動して次のような画面が表示されると思います。

MessageBox.Showのヘルプ

少しスクロールして下を見るとこのようになっており、「指定したテキストを表示するメッセージボックスを表示します。」という簡単な機能の説明に続いて構文や使用例なども載っています。

MesageBox.Showの説明が見える

構文や使用例が 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などいつも自動生成されるけどまだ意味を説明していないキーワードもヘルプで意味を確認できます。でも、こちらは難しいので現段階ではほとんど理解できないと思います。

 

2−2.状況依存ヘルプ

このようにF1はそのキーを押したときの状況に応じたヘルプを表示してくれます。これを状況依存ヘルプと呼びます。

たとえば、プロパティウィンドウでプロパティをクリックしてから F1 を押すとそのプロパティのヘルプが表示されます。

 

[表示]メニューの[エラー一覧]で表示される、エラー一覧では行を選択して F1 を押すと、

エラー一覧

 ヘルプではなくBing検索でこのエラーの英語名が検索されます。ここはちょっと手を抜いているみたいですね。

検索エンジンで該当のエラーが検索される

この例の場合は一番上がマイクロソフトの公式サイトなので、ここをクリックするとこのエラーの説明を見ることができます。F1を押せば直接そのページにジャンプするようになっているとよいのですが・・・。

 

 

3.キーワードの一覧がみたい

3−1.C# ガイド

F1を押して状況ごとにヘルプを見るのではなく、あらかじめドキュメント一式を読んでおきたい人や、C#にはどんなキーワードがあるのかキーワードの一覧が見たい人もいるでしょう。

私も(C#には慣れてしまいましたが)新しいプログラミング言語で開発するときなどはキーワードの一覧を見てどんな機能が用意されているのか自分で確認したいたちです。

 

C# のヘルプはMicrosoft Docs(マイクロソフトドックす)と呼ばれるサイトの中にあります。このサイトにはC#だけではなくWindowsやOfficeやVBなどマイクロソフトのさまざまな製品のドキュメントが集められています。

どういう状況になっているか少し案内しましょう。

 

まず、トップページはこちらです。

https://docs.microsoft.com/ja-jp/

Webサイトなのでデザインや内容はどんどん変わっていくと思いますが、2019年8月現在トップページは以下のようになっています。

Microsoft Docs トップ

すぐにわかるようにWindowsやVisual Studio、Officeなどさまざまなカテゴリーのドキュメントがあります。

ドキュメント ディレクトリの一覧の中にC#のリンクがあります。

C#のガイドへのリンク

クリックするとC#のヘルプにたどり着けます。「C# ガイド」というタイトルになっています。

C# のヘルプ トップ

左側の目次は展開すると大量のドキュメントがあります。

C#のキーワードの一覧は言語リファレンスを展開すると見られます。

言語リファレンスの目次

アルファベット順などでばーっとキーワードが並んでいるわけではなく、カテゴリーに分類されています。

私の感想ではここでカテゴリーを1つずつ開いていってどんなキーワードがあるのかと確認する作業にはあまり意味がないように思います。好奇心があれば試してみるのは悪くないです。

C# ガイドには言語リファレンス以外にもさまざまな技術ドキュメントがあり、ためしに読んでみるのならばリファレンス以外にも範囲を広げてつまみ食いしてみるのは良いと思います。入門講座を読んでいる読者の方にはどのドキュメントを見ても難しいとは思いますが、どんなドキュメントがあるのかなと把握しておけば、後で困ったときに「そういえば、あそこに何か書いてあった」というように思い出すことができます。それに、よくわからなくてもサンプルも豊富に掲載されているので、とりあえず動かしてみながら慣れていくということもできます。

 

3−2.フレームワークのリファレンス

C#でプログラムするときは.NET Core(ドットネットコア) や .NET Framework(ドットネット フレームワーク)のような何かしらのフレームワークを使っていますから、技術情報を探す場合、C#の技術情報だけではなくフレームワークの技術情報も捜す必要があります。

あなたのアプリケーションが使用しているフレームワークはプロジェクトのプロパティを見ればわかります。

[プロジェクト]メニューから (プロジェクト名)のプロパティ (たとえば WindowsFormsApp1のプロパティ)をクリックすると表示できます。

下記の画像だと .NET Framework 4.7.2です。

プロジェクトのプロパティには使用しているフレームワークが表示されている

フレームワークとは何でしょうか?

簡単に言えば、実行環境の機能の集合体です。C#でのプログラミングの大部分は C#を使ったフレームワークへの命令なのです。

たとえば、MessageBox.Showは C# の機能ではなく、.NET Frameworkなどのフレームワークの機能です。C#を使って.NET FrameworkのMessageBoxクラスに命令を出しているわけです。

C#の場合、兄弟言語にVBがあります。C#でもVBでもプログラミング言語は違っても使いたいWindowsやiPhoneの機能は同じですよね。マイクロソフトはC#用の機能とVB用の機能を別々に用意するのではなく、対応しているどのプログラミング言語からでも使用できる機能の集合をフレームワークとして定義しました。

メモ メモ  -  フレームワーク
入門講座でフレームワークが初登場しました。ここでの説明はとても大雑把です。

C#やVBで扱えるフレームワークには下記のようなものがあります。

・.NET Framework

2002年にリリースされた(2019年11月時点では)最も長く使われているフレームワーク。Windows上でのみ動作します。もともとはC#やVBには.NET Frameworkしか選択肢はありませんでした。2019年にリリースされた4.8が最後のバージョンです。

・.NET Core (ドットネット コア)

Windows・Linux・MacOSなどで動作します。2016年にリリースされました。クロスプラットフォームで動作するのが特徴です。この名前では2019年にリリース予定の.NET Core 3.1 が最後のバージョンになる予定です。これ以降は名前が.NET 5、.NET 6、・・・となって将来にわたって提供される予定です。

・Xamarin (ザマリン)

iOSやAndoroidでも動作するクロスプラットフォームなフレームワークです。

これらをまとめてこの記事では .NET (ドットネット)と呼ぶことにしましょう。.NETという言葉の意味は時代によって変わっており今(2019年)でも少しあいまいなのですが、全部ひっくるめた一番大きな概念と思えばとりあえずしっくりきます。

これらのフレームワークは全然異なる別物というわけではなく、基本的な機能やオブジェクトは共有しています。そのためサンプルレベルのプログラムであればあとでプロパティ画面でフレームワークを変更しても動作することが多いです。2020年には .NET 5 という1つのフレームワークに統合される予定です。

高度な機能はフレームワークによっては使えたり使えなかったりします。たとえば、この入門講座で扱っているWindows フォーム アプリケーションは.NET Frameworkの機能です。だから、ボタンやテキストボックスなどはC#ではなく、.NET Framerworkの持ち物であり、今まで出てきたButtonのTextプロパティやBackColorプロパティなどもC#ではなく.NET Frameworkの機能です。

メモ メモ  -  .NET Core 3.0/3.1 でも Windows フォームを使用できます。
.NET Coreでは バージョン3.0でWindowsフォームの機能が追加されました。.NET 5にも引き継がれます。Windowsフォームの機能を使ってプログラムするとWindowsでしか動作しなくなります。

というわけで、ButtonのTextプロパティやBackColorプロパティの情報が見たければドキュメントディレクトリで.NETへのリンクをクリックします。

.NETへのリンク

そして、.NET Framework API リファレンスをクリックすると、.NET Frameworkの機能の一覧が表示されます。

(こういうところで .NET Core APIリファレンスと間違えないためにも自分が使っているフレームワークを知っておく必要はありますね)

.NET Framework APIリファレンスへのリンク

.NET Frameworkの機能は膨大なので、この中からTextプロパティを探すのは大変です。ButtonのTextプロパティが知りたい場合は、プロパティウィンドウで F1 キーを押すのが早いのですが、ここではあえて一覧から探してみましょう。

膨大な.NET Frameworkのなかで、Windows フォーム アプリケーションの機能は System.Windows.Forms 名前空間(システム ウィンドウズ フォームズ)に属しています。名前空間とは機能を分類するフォルダーのようなものです。

System.Windows.Forms名前空間へのリンク

今後はSystem.Windows.Formsに属しているクラス等の一覧が表示されます。入門講座の段階ではオブジェクトのようなものと理解しておいてください。

Buttonのプロパティを調べたいので一覧からButtonをクリックしましょう。

これでButtonのヘルプが表示されます。

この中にプロパティの一覧があり、Textプロパティへのリンクもあります。

 

4.Microsoft Docs

4−1.Microsoft Learn

ところでMicrosoft Docsにはいろいろなコンテンツがあり、学習の役に立ちます。C#のことは少し忘れてMicrosoft Docsにどんなコンテンツがあるのか探検してみましょう。

はじめにはっきり言っておきます。入門者向けのコンテンツは少ないです。

またコンテンツの数はとても多いのですが、マイクロソフトの製品や技術の数が膨大すぎて、「自分が知りたいと思っている分野」を「自分のレベルに合わせて説明しているコンテンツ」、「自分が理解できる言葉(日本語?)」という条件で探すと該当がないことも珍しくありません。レベルと言葉を妥協すればたいていの情報はあります。

言い換えると入門者向けの日本語の説明資料はないということです。入門者向けに限定すると英語の資料でもほとんどないです。だから、Visual Basic 中学校のような入門者向けのサイトがあるのだとおもいます。

でも、前述しましたように、どこにどんなコンテンツがあるか知っておくのは意味のあることです。だから内容が理解できなくても1度くらい開いて見るのが良いと思います。

 

トップ右側にある「学習を開始する」をクリックするとMicrosoft Learn(マイクロソフト ラーン)というサイトが表示されます。

トップ右側に「学習を開始する」ボタンが表示されている

このサイトでは何かを題材のプログラムを作成しながら学校の授業のように順をおって仕組みや機能を説明してくれます。

 

説明用のコンテンツは随時追加されており大量にあります。

※このサイトではコンテンツのことを「モジュール」と呼ぶようです。

大量にあるので何をどういう順番で勉強すればよいのか迷わないように目標を定めて順番にコンテンツをやっていく「ラーニングパス」というものが定義されています。

たとえば、C#用のラーニングパスを検索すると2019年11月時点で次の3つがヒットしました。

https://docs.microsoft.com/ja-jp/learn/browse/?resource_type=learning%20path&term=C%23

C#のラーニングパスを検索

「C#の最初のステップ」というのはC#入門者に良さそうな名前でですね。私は中を読んでいませんが、この中には8個のコンテンツがあり、全部やると3時間51分かかるようです。

 

4−2.動画

Microsoft Docsの下にもリンク集があります。

「ビデオ ラーニング」は期待してしまいますが、Microsoft Learnにリンクしているだけです。

Microsoft Docsの下側のリンク集

Microsoftは動画配信も行っているので、どうせならそちらにリンクすればよいと思うのですが・・・。

仕方ないので私がここで動画教材へのリンクをはっておきます。

Channel 9

https://channel9.msdn.com/Browse/AllContent?sort=recent&lang=ja

C# 101 (英語です・・・。でも、プログラミングだから英語できなくても見れば参考になるかも・・・)

https://channel9.msdn.com/Series/CSharp-101/?WT.mc_id=Educationalcsharp-c9-scottha

 

4−3.MSDNマガジン

MSDNマガジン月刊誌で、上級者には有益です。以前は書店でも売っていました。

Webでは無料で読めるので購入する必要はありません。バックナンバーも読めますし、掲載されているサンプルコードのダウンロードもできます。

そして、日本語です! (古いバックナンバーは英語です)

https://msdn.microsoft.com/ja-jp/magazine/

最新号(2019年7月)の目次は、「ASP.NET Core での AI 搭載の生体認証セキュリティ」、「Docker によるコンテナー化アプリでの EF Core (パート 3)」、「MSIX:Windows でデスクトップ アプリを展開するための最新の方法」、「.NET での音声合成」など。難しそうですけど、なんだか夢があってわくわくしてきますね。

残念ながら2019年11月を最後の廃刊ということです。

4−4.小技

最後にMicrosoft Docsを読む上で少し小技を紹介します。

ヘッダー部にあるプログラミング言語名を切り替えるとドキュメント内の構文の説明やサンプルが切り替わります。対応していない場合もあります。

ヘッダーにプログラミング言語が表示されている

一番左下に「日本語」などと表示されています。ここをクリックして言語を切り替えられます。

ただし、日本語版が存在しないドキュメントや、機械翻訳された日本語に切り替わる場合もあります。

左下に日本語などの言語名が表示されている

英語に切り替えるのであれば右上のスイッチも使えます。

英語で読むと表示されている

なお、英語版のURLに含まれる en-us の部分を ja-jp に変えると日本語になります。

 

左側の目次の一番下に「PDFをダウンロード」と表示されている場合があります。この場合、目次が示す全ドキュメントをPDFとしてダウンロードできます。

このPDFダウンロード機能が使用できないコンテンツも多々あるようです。

目次の下に「PDFをダウンロード」と表示されている

 

 

目次の上にあるフレームワーク名をクリックすると、対象のフレームワークを切り替えられます。

目次の上にフレームワーク名を表示がされている

 

5.オフラインでヘルプを使用する

 

オフライン用のヘルプビューアーをインストールし、ヘルプの起動をブラウザーではなく、ヘルプビューアーに切り替えることでインターネットにつながっていない環境でもヘルプを見られるようになります。

Visual Studio 2019の場合、ヘルプビューアーはインストールするときに個別のコンポーネントから選択することでインストールされます。

[ツール]メニューの[ツールと機能を取得]をクリックすれば、後から追加することもできます。

個別のコンポーネントにヘルプ ビューワーがある

ヘルプビューアーがインストールされていると[ヘルプ]メニューでヘルプの設定項目が増えて、[ヘルプ設定の設定]から、ブラウザーではなくヘルプビューアーを使用してヘルプを表示するようにできます。

ヘルプメニューでヘルプビューアーを選択できるようになっている

操作方法 古いVisual Studioの場合

古いVisual Studioの場合[ヘルプ]メニューの[ヘルプ設定の管理]から「オンラインまたはローカルヘルプの選択」で、ローカルヘルプを選択します。

 

はじめて「ヘルプビューアーで起動」を選択すると、日本語のコンテンツをダウンロードするか聞かれるので、「はい」を選択しましょう。

日本語のコンテンツをインストールするか確認が表示される

 

ダウンロードできるコンテンツの一覧が表示されます。ここでヘルプで見たいコンテンツをローカルにダウンロードしましょう。

2019年8月現在ではVisual Studio 2019など最新版のドキュメントはまだほとんどないようです。

下記コミュニティの書き込みによると2019年7月待つにはレビューが完了する予定ということなので、待っていればまもなく使用できるようになるのではないかと思います。

https://developercommunity.visualstudio.com/content/problem/631075/offline-help-content-is-not-available-for-vs-2019.html

ダウンロードできるコンテンツの一覧が表示されている

 

この画面ではコンテンツをどこから取得するかも選択できて、オンラインではなくディスクを指定するオプションがあります。

私はやったことはありませんが、チームの誰か1人があらかじめディスクにコンテンツをダウンロードしておくことで、他のメンバーはまったくインターネットにアクセスすることなくコンテンツを使用できるようになるのだと思います。

コンテンツのダウンロード元