Lang/C-Sharp
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#topicpath
※ページ名は、「C#」と書けないので仕方なく。
/////////////////////////////////////////////////////////...
* 目次 [#uf66a7a3]
#contents();
/////////////////////////////////////////////////////////...
* データ型 [#x78ac039]
//-------------------------------------------------------...
** 構造体とクラス [#nff7fc6a]
- 構造体は値型。
- クラスは参照型
-- 削除されてもすぐには実体は消えない。実体を消すのはガベ...
/////////////////////////////////////////////////////////...
* delegate [#c966138b]
- C++ でいう「関数ポインタ」のようなもの
- マルチキャスト機能があるので、実装者が自分で実行側にLis...
- 例
using System;
// delegate の宣言
delegate int FuncHoge( int a );
class Test {
void Increment( int in )
{
return( in + 1 );
}
static void Main()
{
// delegate を作成
FuncHoge hoge = Increment; // マルチキャス...
int x = hoge( 1 ); // Test::Increment( 1 ) の...
Console.WriteLine( "hoge: [result:" + x.ToString...
}
}
- ハンドラ関数を1つも挿してない状態で呼び出すと null exce...
→ タイミング等によりハンドラが挿されている保証がないケー...
/////////////////////////////////////////////////////////...
* Dispose [#nbe4498e]
- [[IDisposable インターフェイス(MSDN)>http://msdn.micros...
/////////////////////////////////////////////////////////...
* プリプロセッサ [#yebc2c25]
** #define [#qb1f3734]
- ファイルの先頭に書く必要がある。 class内などで定義する...
- C/C++ のように値を定義することはできない。
#define DEBUG // OK
#define TEST 1 // NG: 値は定義できない
** #if / #else / #endif [#fa2104dd]
- 基本的に C/C++ と一緒。
public class Test
{
public Test() {}
public void Print()
{
#if DEBUG
System.Console.WriteLine( "This is Test\n" );
#else
System.Console.WriteLine( "This is NOT Test\n" );
#endif
}
}
- #if 0 は書けない。
#if false // 0 ではなく false と書くと無効に出来る
...
#endif
** #ifdef は使えない [#m008ede3]
/////////////////////////////////////////////////////////...
* System.Console.WriteLine() のフォーマット [#x0b45150]
- 「"フォーマット文字列", 変数0, 変数1, 変数2」の場合(例)
string var0 = "string0";
int var1 = 1;
float var2 = 0.101;
System.Console.WriteLine( "{0} {1} {2}", var0, var1, ...
結果:
string0 1 0.101
System.Console.WriteLine( "{2} {1} {0}", var0, var1, ...
結果:
0.101 1 string0
/////////////////////////////////////////////////////////...
* 不要関数の削除について [#vd55fae4]
- リフレクションを使っている場合、その関数が本当に使用さ...
終了行:
#topicpath
※ページ名は、「C#」と書けないので仕方なく。
/////////////////////////////////////////////////////////...
* 目次 [#uf66a7a3]
#contents();
/////////////////////////////////////////////////////////...
* データ型 [#x78ac039]
//-------------------------------------------------------...
** 構造体とクラス [#nff7fc6a]
- 構造体は値型。
- クラスは参照型
-- 削除されてもすぐには実体は消えない。実体を消すのはガベ...
/////////////////////////////////////////////////////////...
* delegate [#c966138b]
- C++ でいう「関数ポインタ」のようなもの
- マルチキャスト機能があるので、実装者が自分で実行側にLis...
- 例
using System;
// delegate の宣言
delegate int FuncHoge( int a );
class Test {
void Increment( int in )
{
return( in + 1 );
}
static void Main()
{
// delegate を作成
FuncHoge hoge = Increment; // マルチキャス...
int x = hoge( 1 ); // Test::Increment( 1 ) の...
Console.WriteLine( "hoge: [result:" + x.ToString...
}
}
- ハンドラ関数を1つも挿してない状態で呼び出すと null exce...
→ タイミング等によりハンドラが挿されている保証がないケー...
/////////////////////////////////////////////////////////...
* Dispose [#nbe4498e]
- [[IDisposable インターフェイス(MSDN)>http://msdn.micros...
/////////////////////////////////////////////////////////...
* プリプロセッサ [#yebc2c25]
** #define [#qb1f3734]
- ファイルの先頭に書く必要がある。 class内などで定義する...
- C/C++ のように値を定義することはできない。
#define DEBUG // OK
#define TEST 1 // NG: 値は定義できない
** #if / #else / #endif [#fa2104dd]
- 基本的に C/C++ と一緒。
public class Test
{
public Test() {}
public void Print()
{
#if DEBUG
System.Console.WriteLine( "This is Test\n" );
#else
System.Console.WriteLine( "This is NOT Test\n" );
#endif
}
}
- #if 0 は書けない。
#if false // 0 ではなく false と書くと無効に出来る
...
#endif
** #ifdef は使えない [#m008ede3]
/////////////////////////////////////////////////////////...
* System.Console.WriteLine() のフォーマット [#x0b45150]
- 「"フォーマット文字列", 変数0, 変数1, 変数2」の場合(例)
string var0 = "string0";
int var1 = 1;
float var2 = 0.101;
System.Console.WriteLine( "{0} {1} {2}", var0, var1, ...
結果:
string0 1 0.101
System.Console.WriteLine( "{2} {1} {0}", var0, var1, ...
結果:
0.101 1 string0
/////////////////////////////////////////////////////////...
* 不要関数の削除について [#vd55fae4]
- リフレクションを使っている場合、その関数が本当に使用さ...
ページ名: