基礎

http://wisdom.sakura.ne.jp/programming/cs/
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html


C++と違う仕様のみ


・エントリポイント
static Main();

・文字/文字列
デフォルトでUnicode(2バイト文字)が使われる

・逐語的文字列
エスケープシーケンスの解釈をせずそのまま出力する
( " だけは "" と記述する)
@"xxxxxxxxxxxxxxxxxxxxxxxx"

・条件式
if()文、while()文の判定条件には真偽値しか使えない

・多分岐
switch()文の判定には、[整数型][char][string][enum]が使える
フォールスルーが使えない(goto case xxx;を使えばできる)

・値型/参照型

・値型の変数を参照渡しする
void test1()
{
int x = 0 , y = 0;
test2(ref x , ref y);
}

void test2(ref int x , ref int y)
{
x = 100;
y = 20;
}

(refをoutに変えれば初期化なしで変数を渡せる)

・構造体(値型)
デフォルトコンストラクタを定義できない
フィールドは全て 0 or null で初期化されている
フィールドは宣言時に初期化できない(静的フィールドは可能)
コンストラクタでbaseは使えない(thisは使える)
値型は全て構造体である


・クラス
クラスは宣言してもインスタンスが作られない。(参照型)
多重継承はできない
メンバ変数は全て 0 or null で初期化されている
メンバ変数は宣言時に初期化できる

・静的コンストラクタ
CLR がクラスをロードした時に一度だけ実行される
class Test{
static Test(){}
};

・new修飾子
基底クラスでの宣言を隠蔽する
new public string str;

・基底クラス
baseでアクセスできる

・初期化子
public Test(string str) : base(str){}
public Test() : this("xxx"){}// 型に合ったコンストラクタが呼ばれる

・仮想化/オーバーライド
virtual : オーバーライドを許可する
override : 仮想化メソッドをオーバーライドする

・アクセス修飾子
public : どこからでもアクセスできる
protected : 派生クラスからのアクセスを許可
private : 同じクラス内のみアクセスを許可
internal : 現在のコンパイル単位でのみアクセスを許可します

・派生禁止
このクラスからの派生を禁止する
sealed class Test(){}
このメソッドのオーバーライドを禁止する
sealed override void Write(){}

・抽象クラス
インスタンスを作成できない
abstract class Test{}

・抽象メソッド
本体の定義をできない
abstract void Test();

・エイリアス(別名)
構造体 C#エイリアス  
System.Object Object  
System.String string  
System.Char char  
System.SByte sbyte  
System.Byte byte  
System.Int16 short  
System.UInt16 ushort  
System.Int32 int  
System.UInt32 uint  
System.Int64 long  
System.Int64 ulong  
System.Single float  
System.Double double  
System.Boolean bool  
System.Decimal decimal

・プロパティ
set : 代入式を書いたときにsetアクセサが呼ばれる
代入されたときの内部変数名はvalueになる
get : 代入以外でプロパティが参照されたときはgetアクセサが呼ばれる

class A{
private string m_str;
public string Str{
get{ return m_str; }
set{ m_str = value; }
}
}

{
A a = new A();
a.Str = "test";
string s = a.Str;
}

・配列
string[] str = new string[3];
str[0] = "xxx";
str[1] = "yyy";
str[2] = "zzz";
最終更新:2008年09月29日 11:48
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。