php, javascriptプログラマのためのc#入門

73
PHP ままま JavaScript ままま まままま C# まま まままままままま まま まま

Upload: tomo-mizoe

Post on 13-Aug-2015

264 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: PHP, JavaScriptプログラマのためのC#入門

PHP または JavaScript 経験者

のための C# 入門株式会社ジュライ溝江 智徳

Page 2: PHP, JavaScriptプログラマのためのC#入門

About me

•Tomo Mizoe•CEO & Founder of July Inc.•http://www.july.co.jp•Twitter: @tmizoe

•Microsoft Certified Trainer•Microsoft Certified Solution Developer• Windows Store Apps using HTML5 and JavaScript• Web Applications

Page 3: PHP, JavaScriptプログラマのためのC#入門

これは何?

PHP または JavaScript を書いたことがあるプログラマを対象とした C# の入門資料です。 Java とかObjective-C 経験者も歓迎 練習問題がたくさんあります。

Page 4: PHP, JavaScriptプログラマのためのC#入門

対象者

PHP または JavaScript の基本文法を知っている方

•基本文法• 変数• 配列• 連想配列• 制御文: if, for, foreach, while• 関数

Page 5: PHP, JavaScriptプログラマのためのC#入門

用意するもの

•Windows 7 以降の PC または Mac + Boot Camp

•Visual Studio 2015• 無料の Community Edition で OK

•Visual Studio 2013 でも、ここで取り扱う部分の操作は同じ。

Page 7: PHP, JavaScriptプログラマのためのC#入門

なぜ C# ?

•とにかく便利だから使ってみて•コーディングが楽で楽しい•応用範囲が広い• ISO 、 Ecma International 、 JIS などで標準化• Windows アプリ、 Web アプリ、リアルタイム、 Linux 、 Mac 、 Unity3D( ゲーム ) 、 iOS 、 Android など、ありとあらゆるところで動く

•もっと詳しく…「 C# の強み、或いは何故 PHP から乗り換えるのか」http://www.slideshare.net/neuecc/c-22979400Yoshifumi Kawai 様 , CTO at Grani

Page 8: PHP, JavaScriptプログラマのためのC#入門

練習問題について

•練習問題をたくさん用意しました。

•プログラミング習熟者は斜め読みでよいですが、初心者はすべての練習問題をやってみてください。

•解答例は Github に置きました。https://github.com/mizoe/CS_Practice1

Page 9: PHP, JavaScriptプログラマのためのC#入門

基本文法

Page 10: PHP, JavaScriptプログラマのためのC#入門

基本的なコードの書き方

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Hello World!");

}

}

実行結果Hello World!

Page 11: PHP, JavaScriptプログラマのためのC#入門

行番号を表示する設定 (1)

ツール→ オプション

Page 12: PHP, JavaScriptプログラマのためのC#入門

行番号を表示する設定 (2)

テキストエディタ → すべての言語 → 行番号をオン

ついでに、「テキストを折り返す」もオン

Page 13: PHP, JavaScriptプログラマのためのC#入門

Hello World を作成してみよう (1)

•新しいコンソールアプリを作ります• 黒い画面でつまらない、と思うかもしれませんが、 GUI を使うアプリに比べて余計なトラブルに遭遇せずに学習できます

•Visual Studio で• ファイル → 新規作成 → プロジェクト

Page 14: PHP, JavaScriptプログラマのためのC#入門

テンプレート→ Visual C# →Windows → コンソールアプリケーション   (名前とソリューション: HelloWorld )

Hello World を作成してみよう (2)

Page 15: PHP, JavaScriptプログラマのためのC#入門

Hello World を作成してみよう (3)

コード入力

namespace HelloWorld{ class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }}

追加

Page 16: PHP, JavaScriptプログラマのためのC#入門

Hello World を作成してみよう (4)

実行してみるデバッグ→デバッグの開始 (F5)

一瞬、コマンドプロンプトが立ち上がりますがすぐに閉じます。

ブレークポイントを追加して、一時停止してみよう

Page 17: PHP, JavaScriptプログラマのためのC#入門

Hello World を作成してみよう (5)

追加した部分の次の行のこのへんをクリック

赤丸が点く

ブレークポイント追加

もう一度実行してみよう

Page 18: PHP, JavaScriptプログラマのためのC#入門

Hello World を作成してみよう (6)

ブレークポイントを追加して実行したとき、何がおきているのか?1) コンパイルで exe ファイル作成2) コンソールが開かれ、 exe が実行される3) ブレークポイントで一時停止4) ウィンドウのフォーカスが Visual Studio に戻る

タスクトレイにコンソールがあるはずなので、クリックしてウィンドウのフォーカスを移せば「 Hello World 」と表示されているはず。

Page 19: PHP, JavaScriptプログラマのためのC#入門

Hello World を作成してみよう (7)

終了するときは?• Visual Studio の■ボタン(デバッグの停止 Shift+F5 )• コンソールの × ボタン

どっちでも OK

Page 20: PHP, JavaScriptプログラマのためのC#入門

変数とデータ型

C# は厳密にデータ型を区別します。予約語 別名 意味sbyte System.SByte 符号付き 8 ビット整数byte System.Byte 符号なし 8 ビット整数short System.Int16 符号付き 16 ビット整数ushort System.UInt16 符号なし 16 ビット整数int System.Int32 符号付き 32 ビット整数uint System.UInt32 符号なし 32 ビット整数long System.Int64 符号付き 64 ビット整数ulong System.UInt64 符号なし 64 ビット整数char System.Char 文字型float System.Single 単精度実数double System.Double 倍精度実数bool System.Boolean 論理型( false と true のみ)decimal System.Decimal 10 進型string System.String 文字列型http://www.atmarkit.co.jp/ait/articles/0209/18/news001.htmlから拝借

いっぱいありますが、当面は int, double, bool, string だけで OK

Page 21: PHP, JavaScriptプログラマのためのC#入門

変数を使ってみよう

•Hello World を書き換える

namespace HelloWorld{ class Program { static void Main(string[] args) { string hw = "Hello World!"; Console.WriteLine(hw); } }}

変数を宣言し、値を代入

Page 22: PHP, JavaScriptプログラマのためのC#入門

ブレークポイントで変数を確認

「自動変数」ウィンドウで変数の状態を確認できる

表示されていなければデバッグ→ ウィンドウ→ 自動変数

Page 23: PHP, JavaScriptプログラマのためのC#入門

練習問題 (1) ~ (2)

(1) 姓と名を格納する変数としてそれぞれmyLastName, myFirstName を定義し、ご自身の姓と名を格納してください。

(2) (1) で定義した姓と名を、コンソールへ次のように表示してください。

姓 : Suzuki名 : Taro

解答例https://github.com/mizoe/CS_Practice1

Page 24: PHP, JavaScriptプログラマのためのC#入門

配列

・宣言:データ型 [] 配列名int[] myArray;

・配列要素の生成配列名 = new データ型 [要素数 ];myArray = new int[4];

・宣言と要素の生成を同時におこない、初期値を代入int[] myArray = new int[4] {0, 1, 2, 3};

・要素を指定してアクセス、代入Console.WriteLine(myArray[1]);

myArray[2] = 99;

注意:配列の要素数はあとから変更できません。要素数を可変にしたい場合は、後述するArrayList か List を使います。

Page 25: PHP, JavaScriptプログラマのためのC#入門

練習問題 (3) ~ (4)  配列

(3) 姓を収納する配列 lastNames を定義し、次のデータを順番通りに収納してください。SuzukiTanakaKimuraShima

(4) 名を収納する配列 firstNames を定義し、次のデータを順番通りに収納してください。TaroHanakoJiroTetsuo

解答例https://github.com/mizoe/CS_Practice1

Page 26: PHP, JavaScriptプログラマのためのC#入門

if

途中まで入力したらタブキーを 2回押すとひな形が展開される( IntelliSense )

   int a = 1; if (a == 1) { Console.WriteLine("a == 1"); } else if (a == 2) { Console.WriteLine("a == 2"); } else { Console.WriteLine("else"); }

Page 27: PHP, JavaScriptプログラマのためのC#入門

for

•PHP と同じですよね…•配列の長さ : 変数名 .Length

int[] myArray = new int[4] { 10, 11, 12, 13 };for (int i = 0; i < myArray.Length; i++){

Console.WriteLine(myArray[i]);}

Page 28: PHP, JavaScriptプログラマのためのC#入門

foreach

•var型推論:状況から型を推察。今の場合は変数item は int 型になる

int[] myArray = new int[4] { 10, 11, 12, 13 };foreach (var item in myArray){ Console.WriteLine(item);}

Page 29: PHP, JavaScriptプログラマのためのC#入門

練習問題 (5)  配列と foreach

(5)(3) と (4) で定義した姓と名を使って、コンソールへ次のように表示してください。ただし、 foreach を使うこと。

Suzuki TaroTanaka HanakoKimura JiroShima Tetsuo

解答例https://github.com/mizoe/CS_Practice1

Page 30: PHP, JavaScriptプログラマのためのC#入門

型変換(キャスト)

•ToString() … あらゆる型から文字列型へ•(123.45678).ToString(“F3”) … 小数点以下 4位を四捨五入して 3位までにした文字列•文字列以外のものを画面に出そうとしたような場合、自動的に ToString() が呼び出される

•明示的なキャストint i = 365;

short j = (short)i;

Page 31: PHP, JavaScriptプログラマのためのC#入門

練習問題 (6) ~ (7)

(6)  次の距離をマイルに換算して表示してください。小数点2位以下は四捨五入して表示すること。なお、 1 マイルは1.609344 km です。

青森→東京 715.0km(444.28 マイル )飯田橋→渋谷 6.9km( 4.29 マイル )飯田橋→横浜 33.8km( 21.00 マイル )

※ 時間があれば、表示桁を小数点で揃えること。  ヒント:「数値書式 C# 」でググろう

(7)  次の部屋の面積を坪単位に換算して、小数第 2位まで画面に表示してください。なお、 1坪は 3.3平方メートルです。

101 号室  100平方メートル (30.30坪 )102 号室  75平方メートル (22.73坪 )103 号室  150平方メートル (45.45坪 )

解答例https://github.com/mizoe/CS_Practice1

Page 32: PHP, JavaScriptプログラマのためのC#入門

練習問題 (8) ~ (9)

(8) 整数の配列 ages を作成し、年齢を表す次のデータを収納してください。

18113015553210

(9) (8) の配列 ages を使って年齢が 20歳以上のとき「成人」と表示してください。

181130 成人1555 成人32 成人10

解答例https://github.com/mizoe/CS_Practice1

Page 33: PHP, JavaScriptプログラマのためのC#入門

練習問題 (10)

(10) (8) の配列 ages を使って次のように表示してください。

7-12歳の場合:小学生13-15歳の場合:中学生

1811小学生3015中学生553210小学生

解答例https://github.com/mizoe/CS_Practice1

Page 34: PHP, JavaScriptプログラマのためのC#入門

練習問題 (11)

(11) (10) の表示機能をテストするため、 0~ 19 までの整数を収納する配列 testAges を新たに作成し、 foreach で次のように表示させてください。

0(中略 )67 小学生(中略 )12小学生13中学生14中学生15中学生16(後略 )

解答例https://github.com/mizoe/CS_Practice1

Page 35: PHP, JavaScriptプログラマのためのC#入門

ユーザーの入力した文字列を読み込む

コンソールに入力された値を読み取り、変数 input に格納var input = Console.ReadLine();

文字列 input を int に型変換int inputInt = int.Parse(input);

文字列 input を double に型変換double inputDouble = double.Parse(input);

入力された値を読み取ると同時に int に型変換int inputInt = int.Parse(Console.ReadLine());

Page 36: PHP, JavaScriptプログラマのためのC#入門

練習問題 (12)

(12) 入力された数値を読み取り、それを年齢と解釈して献血が可能な年齢か判別するプログラムを作成してください。※献血が可能な年齢→ 16歳~ 69歳•献血が可能な年齢の場合→「献血できます」と表示•献血が不可能な年齢の場合→「献血できません」と表示

解答例https://github.com/mizoe/CS_Practice1

Page 37: PHP, JavaScriptプログラマのためのC#入門

練習問題 (13)

(13) 入力された数値を読み取り、それを年齢および身長として解釈しジェットコースターに乗れるか判別するプログラムを作成してください。

条件…6歳以上でかつ身長120 cm 以上であること•条件を満たした場合→「乗れます」と表示•満たしていない場合→「乗れません」と表示

※ 提示されていない仕様があったとしても、それなりに解釈して作ること。

解答例https://github.com/mizoe/CS_Practice1

Page 38: PHP, JavaScriptプログラマのためのC#入門

練習問題 (14)

(14) 2 つの値 A と B をコンソール入力から読み取り、これらを比較して次のように表示するプログラムを作成してください。•A と B が等しい時 →「 (A の値を出力 ) と (B の値を出力 ) は等しい」•A が B より大きい時 →「 (A の値を出力 ) は (B の値を出力 ) より大きい」•A が B より小さい時 →「 (A の値を出力 ) は (B の値を出力 ) より小さい」

例) 6 は 10 より小さい解答例https://github.com/mizoe/CS_Practice1

Page 39: PHP, JavaScriptプログラマのためのC#入門

練習問題 (15) ~ (16)

(15) 在庫の値をコンソール入力から読み取り、在庫数に応じて次のように表示させるプログラムを作成してください。在庫は整数値とします。

•在庫が0の時→「在庫がありません」•在庫が3個以下の時→「在庫がわずかです」•それ以外の時→「在庫があります」

(16) (15) のプログラムを、正の整数以外の数値や文字が入力された場合は再度の入力を促すように変更してください。Hint: try~catch 解答例

https://github.com/mizoe/CS_Practice1

Page 40: PHP, JavaScriptプログラマのためのC#入門

練習問題 (17)

(17) テストの成績をコンソール入力から読み取り、点数に応じて次のように表示させるプログラムを作成してください。なお、正の整数以外の数値や文字が入力された場合は再度の入力を促すようにしてください。•80点以上→「 A判定」•70点~ 79点→「 B判定」•60点~ 69点→「 C判定」•60点未満→「 D判定」

解答例https://github.com/mizoe/CS_Practice1

Page 41: PHP, JavaScriptプログラマのためのC#入門

while

•書き方は PHP と同じ

•break, continue も同じ

int i = 0;while (i < 10){

Console.WriteLine(i);i++;

}int j = 0;while (true){ Console.WriteLine(j); j++; if(j < 10) { break; }}

Page 42: PHP, JavaScriptプログラマのためのC#入門

練習問題 (18)~(20)

(18) while 文を使って、「こんにちは」という文字列を5回表示するプログラムを作成してください。

(19) for 文を使って、「おはよう」という文字列を100回表示するプログラムを作成してください。

(20)次のように表示するプログラムを作成してください。

0 : かねだ1 : かねだあ2 : かねだああ3 : かねだあああ(中略 )10 : かねだああああああああああ

解答例https://github.com/mizoe/CS_Practice1

Page 43: PHP, JavaScriptプログラマのためのC#入門

•配列とループの練習問題はほかにも多数ありますhttps://github.com/mizoe/CS_Practice1

Page 44: PHP, JavaScriptプログラマのためのC#入門

可変長の配列、連想配列、ジャグ配列

Page 45: PHP, JavaScriptプログラマのためのC#入門

可変長の配列 List<T>

var foods = new List<string>();foods.Add("ねぎま ");foods.Add(" かわ ");foods.Add(" つくね ");

for (int i=0; i < foods.Count; i++) {

Console.WriteLine(foods[i]);}

※   <T> は Type の略で、型を指定します。 <int> とか <double> とか。

Page 46: PHP, JavaScriptプログラマのためのC#入門

連想配列(ハッシュテーブル)

Hashtable ht = new Hashtable();ht["Apple"] = " りんご ";ht["Orange"] = " オレンジ ";ht["Strawberry"] = 15;ht[0] = " くだもの ";

Console.WriteLine(ht["Apple"]);Console.WriteLine(ht["Orange"]);Console.WriteLine(ht["Strawberry"]);Console.WriteLine(ht[0]);

foreach (var key in ht.Keys){ Console.WriteLine("{0} : {1}", key, ht[key]);}

Page 47: PHP, JavaScriptプログラマのためのC#入門

練習問題 30

•商品の在庫をあらわす連想配列を定義し、次のように画面に表示してください。やくそう 50個どくけしそう 20個せかいじゅのは 1個せいすい 3個

解答例https://github.com/mizoe/CS_Practice1

Page 48: PHP, JavaScriptプログラマのためのC#入門

多次元配列

string[,] foods = new string[3,2];foods[0, 0] = " りんご ";foods[0, 1] = " みかん ";foods[1, 0] = " コーヒー ";foods[1, 1] = "紅茶 ";foods[2, 0] = "ビール ";foods[2, 1] = "日本酒 ";

int i = 0;foreach (var item in foods){ Console.WriteLine("{0} : {1}", i, item); i++;}

Page 49: PHP, JavaScriptプログラマのためのC#入門

配列の配列

string[][] foods = new string[3][];foods[0] = new string[] { " りんご ", " みかん " };foods[1] = new string[] { " コーヒー ", "紅茶 ", "緑茶 " };foods[2] = new string[] { "ビール "};

int i = 0;foreach (var arr in foods){ int j = 0; foreach (var item in arr) { Console.WriteLine("{0}-{1} : {2}", i, j, item); j++; } i++;}

Page 50: PHP, JavaScriptプログラマのためのC#入門

練習問題 31

商品番号・在庫・販売価格・仕入価格を整数で表す多次元配列を定義し、次のように画面に表示してください。

商品番号 在庫 販売価格 仕入価格---------------------------------- 1 99 100 50 2 200 5000 3000 3 50 90 33

解答例https://github.com/mizoe/CS_Practice1

Page 51: PHP, JavaScriptプログラマのためのC#入門

練習問題 32

以下のデータを格納する連想配列を作成し、同様に画面表示してください。

氏名:矢吹 点数: 2氏名:丹下 点数: 74氏名:力石 点数: 80氏名:白木 点数: 100氏名:西  点数: 10

解答例https://github.com/mizoe/CS_Practice1

Page 52: PHP, JavaScriptプログラマのためのC#入門

練習問題 33

(32) で作成した配列を利用して、それぞれの点数と合計点、平均点(小数以下は切り捨て)を出力してください。

氏名:矢吹 点数: 2氏名:丹下 点数: 74氏名:力石 点数: 80氏名:白木 点数: 100氏名:西  点数: 10受験者  5 名合計点  266点平均点  53点

解答例https://github.com/mizoe/CS_Practice1

Page 53: PHP, JavaScriptプログラマのためのC#入門

switch ~ case

•PHP と同じ

int i = 0;switch (i){ case 0: Console.WriteLine("case 0"); break; case 1: Console.WriteLine("case 1"); break; default: Console.WriteLine("default"); break;}

Page 54: PHP, JavaScriptプログラマのためのC#入門

練習問題 34

• (32) の配列を利用して、次の基準で判定し、判定結果を出力してください。ただし、 switch 文を使うこと。80点以上  →優70点~79点→良60点~69点→可60点未満  →不可

氏名:矢吹 点数: 2  評価:不可氏名:丹下 点数: 74  評価:良氏名:力石 点数: 80  評価:優氏名:白木 点数: 100  評価:優氏名:西  点数: 10  評価:不可

解答例https://github.com/mizoe/CS_Practice1

Page 55: PHP, JavaScriptプログラマのためのC#入門

練習問題 35

最初に、  0~ 6 の数字を入力してください。対応した曜日を表示します。

と画面に表示し、キーボードから 0~ 6 の数字を入力すると、その数字に応じて次のように対応する曜日を表示するプログラムを作ってください。対応する曜日を求める際は switch 文を使うこと。      0 日曜日、 1 月曜日、…、 6 土曜日なお、 0~ 6 以外の数字の入力があった場合には  0~ 6 の範囲で入力してくださいと表示して最初に戻り、数字以外の入力があった場合には 数字を入力してくださいと表示して最初に戻るようにして下さい。解答例

https://github.com/mizoe/CS_Practice1

Page 56: PHP, JavaScriptプログラマのためのC#入門

オブジェクト指向

Page 57: PHP, JavaScriptプログラマのためのC#入門

オブジェクト指向の基本

•構造化プログラミングの関数 = 処理•オブジェクト指向のクラス   = データ + 処理

•オブジェクト指向ではデータ … フィールドと呼ぶ処理 … メソッドと呼ぶ

Page 58: PHP, JavaScriptプログラマのためのC#入門

クラスとは?

•クラス = 設計図

BookBook

title

price

author

isbn

getTaxIncludedPrice()

getTax()

publishedDate

publisher

フィールド(メンバ変数)

メソッド

Page 59: PHP, JavaScriptプログラマのためのC#入門

クラスを定義してみよう

フィールド

メソッド

class Book{ public string title; public string author; public DateTime publishedDate; public int price;

public const double taxRatio = 0.08; // 定数

public int getTax() { return (int)(price * taxRatio); }

public int getTaxIncludedPrice() { return price + getTax(); }

}

Page 60: PHP, JavaScriptプログラマのためのC#入門

インスタンス

•クラスを実体化したもの•クラスの定義だけでは値を収納できない•実体化して、はじめて値を収納できる(=利用できる)

例)•クラス:たい焼き器、インスタンス:たい焼き•クラス:車の設計図、インスタンス:車•クラス:家の設計図、インスタンス:家•クラス:本の仕様、 インスタンス:個別の本のデータ

クラスを作ると、それを基にいくつでもインスタンスを作成できる

Page 61: PHP, JavaScriptプログラマのためのC#入門

インスタンスを作ってみる

static void Main(string[] args){ // Book クラスのインスタンス book1 を作成 Book book1 = new Book();

// フィールドに値を代入 book1.title = "C# 入門 "; book1.publishedDate = new DateTime(2000, 12, 31); book1.author = "七月太郎 "; book1.price = 1000000;

// メソッド実行 int taxIncludedPrice = book1.getTaxIncludedPrice(); int tax = book1.getTax();}

Page 62: PHP, JavaScriptプログラマのためのC#入門

練習問題 42

•名簿を作ります。•Person クラスを作ってください。• フィールド

• 姓• 名• ふりがな(姓)• ふりがな(名)• 誕生日

•メソッド• 現在の年齢を返す getAge()

解答例https://github.com/mizoe/CS_Practice1

Page 63: PHP, JavaScriptプログラマのためのC#入門

練習問題 43

•問題 42 の Person クラスのインスタンスを作成してください。•田中太郎(たなか たろう)、 2009/1/1生•鈴木花子(すずき はなこ)、 2008/12/31生

•getAge() の動作を確認してください。

解答例https://github.com/mizoe/CS_Practice1

Page 64: PHP, JavaScriptプログラマのためのC#入門

継承

•既存のクラスを拡張する// 月刊誌クラスclass Magazine : Book{ public int month; // x月号 public string getMonth() { return month + "月号 "; }}

// 文庫クラスclass Novel : Book{ public string series; // x 文庫}

Page 65: PHP, JavaScriptプログラマのためのC#入門

継承したクラスのインスタンスをつくってみる

// Magazine クラスのインスタンス mag1 を作成Magazine mag1 = new Magazine();

// フィールドに値を代入mag1.title = "ベーシックマガジン "; //親クラスのフィールドmag1.price = 1000;mag1.month = 1; //子クラスのフィールド

// メソッド実行int taxIncludedPrice = mag1.getTaxIncludedPrice(); //親クラスstring monthStr = mag1.getMonth(); //子クラス

// Novel クラスのインスタンス nov1 を作成Novel nov1 = new Novel();nov1.title = "ノーシーシャープ・ノーライフ ";nov1.series = "赤シャツ文庫 ";

Page 66: PHP, JavaScriptプログラマのためのC#入門

練習問題 44

問題 42 の Person クラスを継承した Student クラスを作成し、その動作を確認してください。

追加フィールド学籍番号 (string)学年 (int)成績 (Dictionary<科目名 , 点数 >)

追加メソッド総合点を獲得する

解答例https://github.com/mizoe/CS_Practice1

Page 67: PHP, JavaScriptプログラマのためのC#入門

プロパティ

•フィールドに制限をかけたいときなど•クラス外部から見るとフィールドのように振る舞い、 クラス内部から見るとメソッドのように振舞う

データ型 プロパティ名 {get{

return フィールド名 ;}set{

フィールド名 = value;}

}

Page 68: PHP, JavaScriptプログラマのためのC#入門

プロパティの例

•Book クラスの price フィールドは負にしない

private int price; //外部から隠ぺい

public int Price{ get { return price; } set { if (value >= 0) { price = value; } }}

Page 69: PHP, JavaScriptプログラマのためのC#入門

簡素化( C# 3.0 から)

こう書くと

public string Name { get; set; }

このコードと同じ private string __name;public string Name {

get { return this.__name; }set { this.__name = value; }

}

Page 70: PHP, JavaScriptプログラマのためのC#入門

練習問題 45

問題 42 の Person クラスに•身長プロパティ•体重プロパティを追加し、動作を確認してください。

解答例https://github.com/mizoe/CS_Practice1

Page 71: PHP, JavaScriptプログラマのためのC#入門

コンストラクタclass Book{ public string title; public string author; public DateTime publishedDate; public int price; public const double taxRatio = 0.08;

//引数なしでインスタンス化した場合に実行される public Book() { }

//引数ありでインスタンス化した場合に実行される public Book(string title, string author, DateTime publishedDate, int price) { this.title = title; this.author = author; this.publishedDate = publishedDate; this.price = price; }

コンストラクタ: new のときに自動実行されるメソッド

Page 72: PHP, JavaScriptプログラマのためのC#入門

練習問題 46

問題 45 の Person クラスにおけるすべてのフィールドについて、インスタンス化のときに値を定義することもできるように変更してください。

(値を定義しないこともできるように)

解答例https://github.com/mizoe/CS_Practice1

Page 73: PHP, JavaScriptプログラマのためのC#入門

•練習問題はもう少しあります。•準備ができ次第、このファイルを更新していきます。お楽しみに!

•フィードバックいただけると嬉しいです。Twitter: @tmizoe