Transcript Document

プログラミング論 第3回 担当:山口崇志

C#の基礎 (開発環境, 変数, 制御構造, 配列)

東京情報大学 ESCLab.

http://www.edu.tuis.ac.jp/~tyamagu/pl/

C#の特徴

 C#言語(2000~)      オブジェクト指向プログラミング言語 プラットフォームに依存しない開発 記述形式:C言語ベース 言語モデル:Delphi MicrosoftのJava対抗?

  C#自体はオープンな規格である Unity, PlayStation Suite, Mono     Microsoft .NET Framework 共通言語基盤に準拠するプログラムの実行・開発環境 共通言語基盤:CLI (Common Language Infrastructure) インタプリタ方式とコンパイラ方式併用 http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

.NET Frameworkと開発実行フロー

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

Microsoft Visual Studio

 商用の統合開発環境  RAD開発環境としてはかなり早い時期に登場     複数言語のサポート Java, C++, Visual Studio, ASP.NET

共通のデータ型(CTS: Common Type System) Microsoft Windowsとの高い親和性 http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

プロジェクトとnamespace

    プロジェクト ソースコード管理 リソース管理 ライブラリ管理    namespace ライブラリ管理の一種 Javaのpackageと同様 http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

プロジェクトの作成と管理

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

プロジェクトの新規作成

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

レイアウトの変更

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

GUIオブジェクトの追加

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

GUIオブジェクトのプロパティ編集

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

コンパイルと実行

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

デバッグ画面

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

ソースコードの確認(Program.cs)

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

プロジェクトファイルの確認

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

クラスの作成

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

新規クラスの設定

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

ソースコードの編集(HelloControlクラス)

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

ボタンの追加

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

イベントの追加と編集

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

C#の言語仕様

 言語仕様自体は構文も含めJavaと非常に近い    参考 Java 開発者のための C# プログラミング言語 http://msdn.microsoft.com/ja-jp/library/ms228358(v=vs.80).aspx

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

変数宣言

 基本構文はJavaと同様    C#での書式 アクセス修飾子 変数型 識別子; アクセス修飾子を省略した場合はprivate    Javaでの書式 アクセス修飾子 変数型 識別子; アクセス修飾子を省略した場合は”アクセス修飾子無し” http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

変数宣言

 変数制限の書式に若干制約がある  C#での書式   アクセス修飾子 変数型[] 識別子; アクセス修飾子を省略した場合はprivate  Javaでの書式    アクセス修飾子 変数型[] 識別子; アクセス修飾子 変数型 識別子[]; アクセス修飾子を省略した場合は”アクセス修飾子無し” http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

C#のデータ型

予約語 sbyte byte short ushort int uint long ulong char float double bool decimal string 実態 System.SByte

System.Byte

System.Int16

System.UInt16

System.Int32

System.UInt32

System.Int64

System.UInt64

System.Char

System.Single

System.Double

System.Boolean

System.Decimal

System.String

説明 符号付き8ビット整数 符号なし8ビット整数 符号付き16ビット整数 符号なし16ビット整数 符号付き32ビット整数 符号なし32ビット整数 符号付き64ビット整数 符号なし64ビット整数 文字型 単精度実数 倍精度実数 論理型(falseとtrueのみ) 10進型 文字列型 Javaの場合 byte short int long char float double boolean String http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

演算子とフロー制御

 書式もほぼJavaと同様だがバージョンによりC#、Java 共に使える書式が若干異なる   キャストの方式が異なる C#はほぼBoxingが自動 http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

クラスの定義

 継承やインターフェイスの実装等、基本構造はJavaと 同様だが書き方が異なる      C#での書式 修飾子 class 識別子 修飾子 abstract class 識別子 修飾子 class 識別子 : 親クラス 修飾子 class 識別子 : interface1, ...

     Javaでの書式 修飾子 class 識別子 修飾子 abstract class 識別子 修飾子 class 識別子 extends 親クラス 修飾子 class 識別子 implements interface1, ...

http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

構造体(struct)

 C#ではCやC++と同様に構造体が利用できる      構造体とクラスの違い 複数の要素を持つ変数 C#での位置付けは簡易的なクラス 抽象化できない 若干クラスよりも効率的   C#での書式 修飾子 struct 識別子 http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

メソッドの定義

 書式もほぼJavaと同様  C#での書式   修飾子 戻値の型 メソッド名(引数) paramキーワードにより不特定数の引数が利用可能   Javaでの書式 修飾子 戻値の型 メソッド名(引数) http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

通常課題

 通常課題:次のアプリケーションを作成せよ。      フォームを1つ表示する フォームのタイトルはHelloとする フォーム上にはLabel, TextBox, Buttonを1つ配置する 起動時にLabelに表示される文字列は”hello text here.”とする 起動時にTextBoxに表示される文字列は”World”とする    Buttonに表示される文字は”Say Hello !!”とする ButtonをクリックするとLabelの文字列が次のようになる ”Hello [TextBoxに表示されている文字列] !!” http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

追加課題

 前回のMVCモデルを用い たJavaのプログラムを参 考に通常課題の要件を満 たすアプリケーションを作 成せよ。  なおC#で実装した場合、 各クラスのフィールドとメ ソッドは右図のようになる。 http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.

発展課題

 通常課題:次のアプリケーションを作成せよ。      追加課題のHelloModelおよびHelloControlerを用いる 設定フォームと表示フォームの2つを持つ 設定フォームのタイトルは設定とする 表示フォームのタイトルはHelloとする 設定フォーム上にはTextBox, Buttonを1つ配置する    表示フォーム上にはLabelを1つ配置する 表示フォーム上のLabelは次の文字が表示される   ”Hello [TextBoxに表示されている文字列] 起動時は設定フォームが表示される !!” 起動時にTextBoxに表示される文字列は”World”とする   Buttonに表示される文字は”Say Hello !!”とする Buttonをクリックすると表示フォームが表示される http://www.edu.tuis.ac.jp/~tyamagu/pl/ 東京情報大学 ESCLab.