トップページ > プログラム > 2016年12月10日 > jJfPnpDE

書き込み順位&時間帯一覧

11 位/232 ID中時間01234567891011121314151617181920212223Total
書き込み数0002100001000000000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net

書き込みレス一覧

C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
452 :デフォルトの名無しさん[]:2016/12/10(土) 03:10:58.12 ID:jJfPnpDE
static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name) {
var disposer =
source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
return disposer;
}
このプログラムは一体なんなのだ。全然わからない。そこで理解しようと思ってラムダ部分を
関数に置き換えてみると
void ramda(string value ){ Console.WriteLine("{0} : OnNext({1})", name, value); };

だあーー、nameを持ってこれない。持ってくるとすればグローバルにするしかない。
 ラムダ関数は単なる匿名関数というだけでなくて、こういう便利な機能があるんだと初めて
分かった。つまり普通の関数にするとスコープを閉じるがラムダにするとスコープが開く。
オープンスコープ機能だ。ダダだい発見だ。と思ってほかにも気が付いた奴がいないかと
「ラムダ関数はスコープを開く」でググってみると、無い。俺の発見だ。w
C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
453 :デフォルトの名無しさん[]:2016/12/10(土) 03:13:11.24 ID:jJfPnpDE
MSの説明 ラムダ式(C#プログラミングガイド)
ラムダ式は、デリゲート型または式ツリー型を作成するために使用できる匿名関数です。 ラムダ式を使用すると、引数として渡したり関数呼び出しの結果値として返すことができるローカル関数を記述できます。 ラムダ式は、LINQ クエリ式を記述する場合に特に便利です。
以下省略(間違いがおおすぎ、、、、)

1行目から間違ってるよな。W デリゲート型をつくるのは delegate int del(int i); この部分で
あって
del myDelegate = x => x * x;
これではないな。
2行目も間違ってるよな。w ローカル関数ってのはC#7(VS2017)からなのでまだサポート
ないだろ。
C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
454 :デフォルトの名無しさん[]:2016/12/10(土) 04:49:24.16 ID:jJfPnpDE
delegate void del(string valule);
static string _name;
static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name)
{
_name = name;
//var disposer = source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
del aa;
aa= eventdo;
var disposer = source.Subscribe( aa(val ) );
}
static void eventdo(string value){
Console.WriteLine("{0} : OnNext({1})", _name, value);
}
452をDelegateで書き換えてみたがコンパイルエラーになる。なんでだ?
C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
456 :デフォルトの名無しさん[]:2016/12/10(土) 09:33:27.42 ID:jJfPnpDE
すまん。454は自己解決した。
そもそもIObservableをまったく理解してなかった。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。