列挙型(enum)は、名前付き整数定数のセットです。列挙型はenumキーワードで宣言します。 C#の列挙型は値型データです。つまり、列挙型は独自の値を持ち、継承することも、継承されることもできません。 enum変数の宣言 列挙型を宣言する一般的な構文は以下の通りです。 enum <enum_name> { enumeration_list }; ここで、 enum_name - 列挙型の型名を指定 enumeration_list - 識別子のカンマ区切りリスト 列挙リスト内の各シンボルは、直前のシンボルより1大きい整数値を表します。デフォルトでは、最初の列挙シンボルの値は0
C#において、構造体(struct)は値型のデータ型です。関連するさまざまなデータ型のデータを1つの変数で保持するのに役立ちます。構造体を作成するにはstructキーワードを使用します。 構造体はレコードを表現するために使用されます。例えば、図書館の本を管理する場合、以下の属性を追跡したいかもしれません。 タイトル(Title) 著者(Author) 主題(Subject) 書籍ID(Book ID) 構造体の定義 構造体を定義するにはstructステートメントを使用します。これは、プログラムで複数のメンバーを持つ新しいデータ型を定義します。 Book構造体の宣言例 struct Bo
C#では文字列を文字の配列として使用できますが、より一般的な方法はstringキーワードを使用して文字列変数を宣言することです。stringキーワードはSystem.Stringクラスのエイリアスです。 Stringオブジェクトの作成方法 Stringオブジェクトは以下の方法で作成できます。 文字列リテラルをString変数に代入 Stringクラスのコンストラクタを使用 文字列連結演算子(+)を使用 文字列を返すプロパティの取得やメソッドの呼び出し 書式設定メソッドを呼び出して値やオブジェクトを文字列表現に変換 作成例 using System; namespace StringAp
配列は、同一型の要素を固定サイズの順序付きコレクションとして格納します。配列はデータのコレクションを格納するために使用されますが、同一型の変数が連続したメモリ位置に格納されているコレクションと考える方が便利なことが多いです。 number0, number1, ..., number99 のように個別の変数を宣言する代わりに、numbers という1つの配列変数を宣言し、numbers[0], numbers[1], ..., numbers[99] で個々の変数を表現します。配列の特定の要素にはインデックスでアクセスします。 すべての配列は連続したメモリ位置で構成されます。最も低いアドレスが
C#にはヌル許容型(nullable types)という特別なデータ型があり、通常の値の範囲に加えてnull値を割り当てることができます。 例えば、Nullable<Int32>変数には、-2,147,483,648から2,147,483,647の値またはnullを格納できます。同様に、Nullable<bool>変数にはtrue、false、またはnullを割り当てできます。 ヌル許容型の宣言構文 <data_type>? <variable_name> = null; この?はNullable<T>のシンタックスシュガー(簡易記
メソッドとは、タスクを実行するために一緒に働くステートメントのグループです。すべてのC#プログラムには、Mainという名前のメソッドを持つクラスが少なくとも1つあります。 メソッドを使用するには、以下の2ステップが必要です。 メソッドを定義する メソッドを呼び出す メソッドの定義 メソッドを定義するとき、その構造の要素を宣言します。C#でのメソッド定義の構文は以下の通りです。 <Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body } メソッドの
カプセル化とは、「1つ以上の項目を物理的または論理的なパッケージ内に含めるプロセス」と定義されます。オブジェクト指向プログラミングにおいて、カプセル化は実装の詳細へのアクセスを防止します。 抽象化とカプセル化は、オブジェクト指向プログラミングにおける関連する機能です。抽象化が関連情報を可視化するのに対し、カプセル化はプログラマーが望むレベルの抽象化を実装することを可能にします。 カプセル化はアクセス修飾子を使用して実装されます。アクセス修飾子は、クラスメンバーのスコープと可視性を定義します。C#は以下のアクセス修飾子をサポートしています。 Public(パブリック) Private(プライベ
コードブロックを何度も繰り返し実行する必要がある場合があります。一般的に文は順次実行されます:関数の最初の文が最初に実行され、次に2番目、と続いていきます。 プログラミング言語には、より複雑な実行パスを可能にするさまざまな制御構造が用意されています。 ループステートメントを使用すると、文または文のグループを複数回実行できます。ほとんどのプログラミング言語におけるループステートメントの一般的な形式は以下の通りです。 C#のループタイプ No.ループタイプと説明 1whileループ与えられた条件が真である間、文または文のグループを繰り返す。ループ本体を実行する前に条件をテストする。 2
意思決定構造では、プログラマが1つ以上の条件を指定し、プログラムによって評価・テストされます。条件が真と判定された場合に実行される文、およびオプションで偽と判定された場合に実行される文を指定します。 一般的な意思決定構造の形式は以下の通りです。 C#の意思決定ステートメント No.ステートメントと説明 1if文ブール式に続いて1つ以上の文が続く 2if...else文if文に続けて、ブール式が偽のときに実行されるelse文を指定可能 3ネストしたif文if文またはelse if文の中に、別のif文やelse if文を記述可能 4switch文変数を値のリストと照合して等価性をテス
演算子とは、コンパイラに特定の数学的または論理的操作を実行させる記号です。C#には豊富な組み込み演算子があり、以下の種類に分類されます。 算術演算子 関係演算子 論理演算子 ビット演算子 代入演算子 その他の演算子 算術演算子 変数Aが10、変数Bが20を保持していると仮定します。 演算子説明例 +2つのオペランドを加算A + B = 30 -第1オペランドから第2オペランドを減算A - B = -10 *2つのオペランドを乗算A * B = 200 /分子を分母で除算B / A = 2 %剰余演算子(整数除算の余り)B % A = 0 ++インクリメント演算子(整数値を1増やす
定数とは、プログラムの実行中に変更されない固定値のことです。これらの固定値はリテラルとも呼ばれます。定数は、整数定数、浮動小数点定数、文字定数、文字列リテラルなど、基本データ型のいずれかとして定義できます。また、列挙定数もあります。 定数は通常の変数と同様に扱われますが、定義後に値を変更できない点が異なります。 整数リテラル 整数リテラルは10進数または16進数の定数として表現できます。プレフィックスで基数を指定します:16進数は0xまたは0X、10進数にはプレフィックスは不要です。 サフィックスとしてU(unsigned)とL(long)の組み合わせを指定できます。大文字小文字は区別されず
変数とは、プログラムが操作できるストレージ領域に付けられた名前のことです。C#の各変数には特定の型があり、その型によって変数のメモリのサイズとレイアウト、そのメモリに格納できる値の範囲、変数に適用できる演算のセットが決まります。 基本的な値の型 C#で提供される基本的な値型は以下のカテゴリに分類されます。 型例 整数型sbyte, byte, short, ushort, int, uint, long, ulong, char 浮動小数点型float, double 10進数型decimal ブール型true, false ヌル許容型Nullable<T> また、C
型変換とは、あるデータ型を別のデータ型に変換することです。これは型キャストとも呼ばれます。C#では、型キャストには主に2つの形式があります。 暗黙的型変換 - C#が型安全な方法で自動的に実行する変換です。例えば、より小さい整数型から大きい整数型への変換、派生クラスから基底クラスへの変換などが該当します。 明示的型変換 - ユーザーが定義済みの関数やキャスト演算子を使用して明示的に行う変換です。明示的な変換にはキャスト演算子が必要です。 明示的型変換の例 次の例は、double型からint型への明示的なキャストを示しています。 using System; namespace TypeCo
C#の変数は、以下のタイプに分類されます。 値型 参照型 ポインタ型 値型 値型変数には直接値を代入できます。これらはSystem.ValueTypeクラスから派生しています。 値型はデータを直接含みます。例としてint、char、floatがあり、それぞれ数値、文字、浮動小数点数を格納します。int型を宣言すると、システムは値を格納するためのメモリを割り当てます。 以下の表に、C# 2010で利用可能な値型を示します。 型 表すもの 範囲 既定値 bool ブール値 TrueまたはFalse False byte 8ビット無符号整数 0~255 0 char 16ビットU
C#はオブジェクト指向プログラミング言語です。オブジェクト指向プログラミング手法では、プログラムはさまざまなオブジェクトで構成され、それらはアクションを通じて相互に作用します。オブジェクトが取るアクションをメソッドと呼びます。同じ種類のオブジェクトは、同じ型を持つ、または同じクラスに属すると言われます。 例えば、Rectangle(長方形)オブジェクトを考えてみましょう。これには長さと幅という属性があります。設計によっては、これらの属性の値を受け入れる方法、面積を計算する方法、詳細を表示する方法が必要になるかもしれません。 Rectangleクラスの実装を見て、C#の基本構文について説明します
C#プログラミング言語の基本的な構成要素を学ぶ前に、最小限のC#プログラム構造を見て、今後の章での参照としておきましょう。 Hello Worldプログラムの作成 C#プログラムは以下の部分で構成されます。 名前空間の宣言 クラス クラスメソッド クラス属性 Mainメソッド ステートメントと式 コメント 「Hello World」と出力する簡単なコードを見てみましょう。 ライブデモ using System; namespace HelloWorldApplication { class HelloWorld { static void Main(string[] args) { /
この章では、C#プログラミングの作成に必要なツールについて説明します。C#は.Netフレームワークの一部であり、.Netアプリケーションの作成に使用されることをすでに述べました。したがって、C#プログラムの実行に利用可能なツールについて説明する前に、C#が.Netフレームワークとどのように関係しているかを理解しましょう。 .Netフレームワーク .Netフレームワークは、以下の種類のアプリケーションを作成するのに役立つ画期的なプラットフォームです。 Windowsアプリケーション Webアプリケーション Webサービス .Netフレームワークアプリケーションはマルチプラットフォームアプリケ
C#は、Microsoftによって開発され、European Computer Manufacturers Association(ECMA)とInternational Standards Organization(ISO)によって承認された、モダンで汎用的なオブジェクト指向プログラミング言語です。 C#は、.Net Frameworkの開発中にAnders Hejlsbergと彼のチームによって開発されました。 C#はCommon Language Infrastructure(CLI)向けに設計されており、これは実行可能コードとランタイム環境で構成され、さまざまなハイレベル言語を異なるコ
CGIとは? Common Gateway Interface(CGI)は、Webサーバーとカスタムスクリプト間で情報を交換する方法を定義する一連の標準規格です。 CGI仕様は現在NCSAによって維持されています CGIは、HTTPサーバーなどの情報サーバーとインターフェースする外部ゲートウェイプログラムの標準です 現在のバージョンはCGI/1.1で、CGI/1.2が進行中です Webブラウジングの仕組み ハイパーリンクをクリックして特定のWebページやURLを閲覧するとき、以下の流れで処理されます。 ブラウザがHTTP Webサーバーに接続し、URL(ファイル名)を要求 Webサ
マルチスレッドはマルチタスクの一形態であり、マルチタスクとはコンピュータが2つ以上のプログラムを同時に実行できる機能です。一般的にマルチタスクには2種類あります:プロセスベースとスレッドベースです。 プロセスベースのマルチタスクは、プログラムの同時実行を扱います。スレッドベースのマルチタスクは、同一プログラムの異なる部分を同時に実行することを扱います。 マルチスレッドプログラムには、同時に実行できる2つ以上の部分が含まれます。このようなプログラムの各部分をスレッドと呼び、各スレッドは独立した実行パスを定義します。 C++自体にはマルチスレッドアプリケーションの組み込みサポートがありません
C言語