講義メモ ・オリエンテーション ・テキスト1,2章 p.2 C#でなにができるのか(補足) ・C#は複数の開発形態を提供している ①コンソールアプリケーション:コマンドインターフェースを用いる基本的形態(この講座で利用) ②フォームアプリケーション:グラフィックやマウスなどのポインティングディバイスを利用できる形態(応用コースで利用) ③サーバアプリケーション:Webサーバ上で動作するネットワークプログラム用 ④他システム連携:Unityなどと連携して動作する ・Windowsでは.NETフレームワークという開発環境の一部であり、Visual Studioと共に無償提供されている。 ・他のOS用のC#もある p.3 オブジェクト指向のメリット(補足) ・要点をまとめると3つのテーマ「グループ開発」「再利用」「部品化」を容易にする仕掛け。 ・なお、カプセル化はp.166で、継承はp.223で、多態性はp.232で後述するので、流し読みでOK p.6 プログラムができるまで(補足) ・C#の開発環境Visual Studioでは「ソースファイルのコンパイル」と「リンク」を合わせて「ビルド」という ・「ビルド」は任意に実行できるが、自動的にも行われるので、ソースファイルを書いたら「実行」でOK p.8 .NET Framework(補足) ・開発と実行を効率化する仕組みで安全性にも効果がある ・C#とVisual Basic言語に対応 ・対応していないC言語やC++では、OSの上で直接動作することによる効率の良さがあるが、問題や安全性低下が起こりやすい ・.NET FrameworkはWindowsの上に実行環境を構築して、その上でプログラムを動作させるので、効率はやや劣るが、問題や安全性低下が起こりづらい ・Windows11には予め.NET Frameworkが入っているが、Windows10以前のOSではそうとは限らないので、別途、.NET Frameworkをインストールする必要がある。 p.11 Visual Studioの使い方(バージョンアップに伴い差し替え) ①「スタート」「すべて(のアプリ)」「V」「Visual Studio 2022」 ②「新しいプロジェクトの作成」 ③ 言語を「C#」に、プラットフォームを「Windows」にする ④「空のプロジェクト(.NET Framework)」「次へ」 ⑤ プロジェクト名は自由。場所の「…」をクリックしてUSBメモリなどを指定 ⑥「作成」  ※「新機能」「Copilot」は「×」で閉じてOK ⑦「ウィンドウ」「ウィンドウレイアウトのリセット」「はい」 ⑧「プロジェクト」「新しい項目の追加」  ※新しい項目の追加ウィンドウが表示されなければ「すべてのテンプレートの表示」 ⑨「コード」「コードファイル」 ⑩「名前」を「sample.cs」に書き換えて「追加」 p.15 Sample.csを用いて動作確認 //sample.cs using System; class Sample { public static void Main() { Console.WriteLine("Hello, World!"); } } ①「ファイル」「すべて保存」 ②「ビルド」「ソリューションのビルド」(通常は自動実行に任せてOK) ③「デバッグ」「デバッグなしで開始」または「▽(右向き)」で実行  ※「コード 0 (0x0) で終了しました」が表示されたら正常終了している ④任意のキーを押すか、「×」でコンソールを閉じる(放置しないこと) 第2章 テキストを表示する p.17 myname01.csの実行方法(2本目以降の実行方法) ※ 実行はプロジェクト単位なので、実行用のソースファイルは2以上入らないことに注意 ① 既存の実行用ソースファイル(sample.cs)を右クリックして「プロジェクトから除外」 ※「プロジェクトから除外」してもソースファイルは消えないので再利用可能 ②「ファイル」「最近使ったファイル」「sample.cs」とすると、参照用にソースファイルを表示できる ③「プロジェクト」「新しい項目の追加」 ④「コード」「コードファイル」 ⑤「名前」を「myname01.cs」に書き換えて「追加」 ⑥「sample.cs」の全ソースをコピーして「myname01.cs」にペースト ⑦「myname01.cs」で変更された部分のみを書き換えて「ファイル」「すべて保存」 ⑧「デバッグ」「デバッグなしで開始」または「▽(右向き)」で実行 ⑨ 任意のキーを押すか、「×」でコンソールを閉じる(放置しないこと) p.18 プログラムの構造:コメント ・「//」以降、改行までの記述はコンパイル対象にならないので、メモ書きに便利 ・このメモ書きをコメントといい、実業務では記述内容と記述形式がルール化されていることが多い  例:作成者/変更者名、作成/変更理由、変更履歴、留意点 など ・なお、C言語のコメント形式として「/*」から「*/」までを用いて複数行コメントを記述可能  ※ p.19 コメントの例2、3のような混在は推奨されない p.18 プログラムの構造:名前空間(詳細はp.387) ・大量の情報がある時に、名前をつけて分割することで、管理や重複チェックを効率化できる仕組み ・C#が提供する部品群は複数の名前空間に分けてあるので、使う名前空間をusingすれば良い  ※一般に良く使われる部品があるのはSystem名前空間なので、無条件に「using System;」を記述する ・名前空間の利用を宣言しておけば、本来の名前の前につく「名前空間名.」を省略できる  例: System.Console.WriteLine("A"); ⇒ Console.WriteLine("A"); p.18 プログラムの構造:クラス(詳細はp.153) ・プログラムを構成する単位で、C#では、処理はクラスに記述する必要がある ・クラスには名前が必要で、ソースファイル名と同じクラス名にすることが多いが変更も可能 ・定義書式: class クラス名 { 内容 } ・「{」から「}」まででクラス定義の範囲を示す(単純なプログラムは1クラスの場合が多い) p.18 プログラムの構造:Mainメソッド(詳細はp.160) ・クラスの中に記述する「実行内容の定義」がメソッド ・Mainメソッドは特別な名前で、開始直後に行うべき内容を記述する ・定義書式例: public static void Main() { 内容 } ・「public」で外部(この場合はC#システム)から見えることを指す ・「static」で初期状態で存在する(だから最初から実行可能な)ことを指す ・「void」で呼び出し側(この場合はC#システム)に何も返さないことを指す(情報を返すようにもできる) p.17 myname01.cs(コメントを付けたバージョン) //p.17 myname01.cs using System; //System名前空間の利用を宣言 class MyName01 //MyName01クラスの定義 { //クラス定義の開始 public static void Main() //開始直後に行う実行内容の定義 { //メソッド定義の開始 Console.WriteLine("私の名はシャア"); //コンソールに表示する } //メソッド定義の末尾 } //クラス定義の末尾 p.21 インデント ・クラスの定義やメソッド定義の範囲を示す「{」と「}」をブロックともいう ・ブロックの内側にブロックを記述するので、開始と末尾がペアになるように間の前方に空白を入れる事をインデントという ・Visual Studioなどはインデントを自動的に行うが、編集によって乱れることもあるので注意 ※ 他者に見せるソースファイルはインデントが正確にされていることが前提 ※ Visual Studioにはインデントの乱れを即時に修正する機能がある(ctrlを押しながらA,K,Dの順に押す) p.22 変数を使ってみる(変数の宣言) ・変数は英語のvariableの和訳で「変わった数」という意味ではなく「変わりえるもの」 ・実際はメモリ(記憶領域)の上に領域を確保して名前(変数名)をつけたものが変数 ・よって、変数にはデータ(値)を格納して利用できる ・この領域の大きさや用途(性質)を指定する情報をデータ型という ・最も一般的に使われるデータ型が「int(Integerの略)」で、32ビットの大きさで整数を格納できる  ※32ビットとは2進数32桁で、10進数にすると約-21億から約21億までの値になる。 ・C#では変数の利用前に宣言が必要で、宣言によって変数が確保される ・宣言書式: データ型 変数名;  例: int hp; //HP用のint型変数の宣言 ・複数の同じデータ型の変数を同時に宣言できる。この場合、変数名の間にカンマを入れる  例: int hp, mp; //HP用とMP用のint型変数の宣言 p.22 変数を使ってみる(変数への代入) ・変数にデータ(値)を格納することを代入という ・代入により、すでにある値があっても上書きされる ・代入には「=」記号を用いる(※「=」には「等しい」という意味はないので注意) ・代入の書式例: 変数名 = 値;  例:int hp; hp = 100; //HP用のint型変数を宣言し、100を代入  例:int hp; hp = 100; hp = 200; //HP用のint型変数を宣言し、100を代入、200を代入(上書きされる) ・変数に代入する値はデータ型が一致する必要があるので、int型の変数にはその範囲の整数のみ代入可能  例:int hp; hp = 3.14; //エラーになる  例:int mp; mp = 2200000000; //エラーになる p.23 変数を使ってみる(変数の初期化) ・宣言しても代入していない変数の値を間違って利用するとエラーになる(不定なので) ・そこで、通常、変数の宣言において最初の値を代入しておくと良い。これを初期化という ・初期化の書式例: データ型 変数名 = 値;  例:int hp = 100; //HP用のint型変数の宣言し100で初期化 ・複数の変数の同時初期化も可能  例:int hp = 100, mp = 200; //HP、MP用のint型変数を宣言しHPは100、MPは200で初期化 ・複数の変数の宣言と初期化も可能  例:int hp = 100, mp; //HP、MP用のint型変数を宣言しHPは100で初期化 p.23 変数を使ってみる(変数名のルール) ・変数名には大文字、小文字、数字、「_」、2バイト文字(漢字やひらがな等)が利用できる ・ただし、先頭には数字は使えない ・なお、エラーにはならないが、「_」、2バイト文字は推奨されないことが多い。 ・また、チームルールによっては、大文字1文字の変数名も推奨されないことが多い。 p.24 C#のキーワード ・文法上、特別な意味をもつ単語(例:class、public、static、void、using等)をキーワードまたは予約語という ・変数名などのプログラマが命名する名前(識別子ともいう)はキーワードと一致するとエラーになる ・ただし、キーワードは全て小文字なので、その一部または全部を大文字にしたものはキーワードではない  ※ チームルールによっては、キーワードの一部または全部を大文字にしたものは推奨されないことが多い ・先頭に「@」をつけるとキーワードの制限を解除できるが、通常、推奨されない p.25 変数を使ってみる(変数の値の加算) ・「+」記号の両側に加算可能な値や、加算可能なデータ型の変数を記述すると、加算結果が得られる ・この「+」記号を含む記述を加算式といい、加算結果を変数に代入できる ・書式例: 変数名 = 加算式;  例: int hp; hp = 100 + 200; //hpに300を代入  例: int hp, mp = 300; hp = 100 + mp; //hpに100 + 300の結果の400を代入  例: int hp = 10, mp = 20, total; total = hp + mp; //totalに10 + 20の結果の30を代入 p.35 変数のデータを表示する ・p.15の"Hello, World!"のように文字を0文字以上並べて「"」ではさんだものを文字列という ・「+」記号には複数の機能があり、文字列と変数や値の間に「+」記号を書くと連結結果の文字列が得られる  例: "エネルギーゲインが" + 5 + "倍!" //連結されて"エネルギーゲインが5倍!"になる ・p.15のように、文字列をConsole.WriteLine(●)の中に書くと、その文字列を表示できる ・●には式を書くこともできるので、文字列と変数や値の連結結果を表示できる  例: int hp = 5; Console.WriteLine("HPは" + hp + "です"); //連結されて"HPは5です"と表示 アレンジ演習 「p.25 変数のデータを表示する」の3~4行目 ① 新たに「a25.cs」を作って「sample.cs」の内容をコピーする ② Console.WriteLine(…)の1行を、「p.25 変数のデータを表示する」の3~4行目で置き換える ③ 実行結果を確認 次回予告:p.25「変数のデータを表示する」から