CSharp講座第五回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[CSharp講座第四回]]
#markdown{{
# 関数2
## デリゲート
関数を変数のように扱う機能をデリゲート(委譲)といいます。
まずデリゲートの型を作ります。
```
アクセシビリティ delegate 戻り値の型 デリゲート名(引数...
```
変数の作り方は他と同じです。
変数を関数のように呼び出すと登録された関数を呼び出すこと...
#### 演習1 デリゲート
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = f;
a();
}
delegate void A();
void f()
{
1.Dump();
}
```
### マルチキャストデリゲート
デリゲートは複数の関数を登録することができます。
#### 演習2 マルチキャストデリゲート
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = f;
a+=f2;
a();
a-=f;
a();
}
delegate void A();
void f()
{
1.Dump();
}
void f2()
{
2.Dump();
}
```
## ラムダ式
関数を簡単に書く方法がラムダ式です。ラムダ式はデリゲート...
```
(引数リスト)=>式;
```
ラムダ式の戻り値は式の戻り値と同じです。
#### 演習3 ラムダ式
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = ()=>1.Dump();
a();
}
delegate void A();
```
## イベント
イベントとは外部から関数の登録と解除のみできるデリゲート...
デリゲートの呼び出しはクラス内からのみ可能です。
#### 演習4 イベント
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
F f=new F();
f.a+=()=>2.Dump();
f.f();
}
delegate void A();
class F
{
public event A a;
public void f()
{
a();
}
}
```
# ジェネリック
ジェネリック(総称)とは型を引数にできる機能です。この機...
#### 演習5 ジェネリック
LinqPadのLanguageをC#Programにしておきましょう。
```
void Main()
{
F<int> f=new F<int>();
f.a=10;
f.f();
F<double> f2=new F<double>();
f2.a=10.22;
f2.f();
}
class F<T>
{
public T a;
public void f()
{
a.Dump();
}
}
```
ジェネリックを使うのはコンテナという複数のデータを扱う時...
#### 演習6 コンテナ
LinqPadのLanguageをC#Programにしておきましょう。
```
void Main()
{
List<int> l=new List<int>();
l.Add(10);
l.Add(20);
l.Add(30);
l.Dump();
l[2].Dump();
Dictionary<int,double> d = new Dictionary<int,double>...
d[1]=1.1;
d[5]=444;
d.Dump();
d[1].Dump();
}
```
# 配列
コンテナの一つに配列があります。
配列は格納できる個数が固定です。また専用の構文があります。
```
型[] 変数名 = new 型[個数]
```
配列にアクセスするには配列内の番号を指定します。番号は0か...
#### 演習7 配列
LinqPadのLanguageをC#Statement(s)にしておきましょう。
```
int[] i = new int[2];
i.Dump();
i[0]=9;
i[1]=8;
i.Dump();
```
# foreach
コンテナ複数の値を扱うことができますがコンテナの中を順に...
```
foreach(型 変数名 in コンテナの変数名)
{
処理
}
```
#### 演習8 foreach
LinqPadのLanguageをC#Programにしておきましょう。
```
void Main()
{
List<int> l=new List<int>();
l.Add(10);
l.Add(20);
l.Add(30);
foreach(var i in l)
{
i.Dump();
}
}
```
var は型を推測してくれます。
# 文字列
C#では文字列をstring型として扱います。
また幾つかの便利な構文があります。
#### 演習9 文字列
LinqPadのLanguageをC#Statement(s)にしておきましょう。
```
string s = ”Hello”;
s.Dump();
s=$”Say {s}”;
s.Dump();
s=@”
a
b
c
d
”;
s.Dump();
```
# コマンドライン引数
C#のプログラムはstaticなMain関数から始まります。その引数...
```
void Main(string[] args)
```
}}
終了行:
[[CSharp講座第四回]]
#markdown{{
# 関数2
## デリゲート
関数を変数のように扱う機能をデリゲート(委譲)といいます。
まずデリゲートの型を作ります。
```
アクセシビリティ delegate 戻り値の型 デリゲート名(引数...
```
変数の作り方は他と同じです。
変数を関数のように呼び出すと登録された関数を呼び出すこと...
#### 演習1 デリゲート
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = f;
a();
}
delegate void A();
void f()
{
1.Dump();
}
```
### マルチキャストデリゲート
デリゲートは複数の関数を登録することができます。
#### 演習2 マルチキャストデリゲート
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = f;
a+=f2;
a();
a-=f;
a();
}
delegate void A();
void f()
{
1.Dump();
}
void f2()
{
2.Dump();
}
```
## ラムダ式
関数を簡単に書く方法がラムダ式です。ラムダ式はデリゲート...
```
(引数リスト)=>式;
```
ラムダ式の戻り値は式の戻り値と同じです。
#### 演習3 ラムダ式
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = ()=>1.Dump();
a();
}
delegate void A();
```
## イベント
イベントとは外部から関数の登録と解除のみできるデリゲート...
デリゲートの呼び出しはクラス内からのみ可能です。
#### 演習4 イベント
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
F f=new F();
f.a+=()=>2.Dump();
f.f();
}
delegate void A();
class F
{
public event A a;
public void f()
{
a();
}
}
```
# ジェネリック
ジェネリック(総称)とは型を引数にできる機能です。この機...
#### 演習5 ジェネリック
LinqPadのLanguageをC#Programにしておきましょう。
```
void Main()
{
F<int> f=new F<int>();
f.a=10;
f.f();
F<double> f2=new F<double>();
f2.a=10.22;
f2.f();
}
class F<T>
{
public T a;
public void f()
{
a.Dump();
}
}
```
ジェネリックを使うのはコンテナという複数のデータを扱う時...
#### 演習6 コンテナ
LinqPadのLanguageをC#Programにしておきましょう。
```
void Main()
{
List<int> l=new List<int>();
l.Add(10);
l.Add(20);
l.Add(30);
l.Dump();
l[2].Dump();
Dictionary<int,double> d = new Dictionary<int,double>...
d[1]=1.1;
d[5]=444;
d.Dump();
d[1].Dump();
}
```
# 配列
コンテナの一つに配列があります。
配列は格納できる個数が固定です。また専用の構文があります。
```
型[] 変数名 = new 型[個数]
```
配列にアクセスするには配列内の番号を指定します。番号は0か...
#### 演習7 配列
LinqPadのLanguageをC#Statement(s)にしておきましょう。
```
int[] i = new int[2];
i.Dump();
i[0]=9;
i[1]=8;
i.Dump();
```
# foreach
コンテナ複数の値を扱うことができますがコンテナの中を順に...
```
foreach(型 変数名 in コンテナの変数名)
{
処理
}
```
#### 演習8 foreach
LinqPadのLanguageをC#Programにしておきましょう。
```
void Main()
{
List<int> l=new List<int>();
l.Add(10);
l.Add(20);
l.Add(30);
foreach(var i in l)
{
i.Dump();
}
}
```
var は型を推測してくれます。
# 文字列
C#では文字列をstring型として扱います。
また幾つかの便利な構文があります。
#### 演習9 文字列
LinqPadのLanguageをC#Statement(s)にしておきましょう。
```
string s = ”Hello”;
s.Dump();
s=$”Say {s}”;
s.Dump();
s=@”
a
b
c
d
”;
s.Dump();
```
# コマンドライン引数
C#のプログラムはstaticなMain関数から始まります。その引数...
```
void Main(string[] args)
```
}}
ページ名: