ML	  	  Nagoya	  2012/05/26                       1
自己紹介       2
LINQってなんぞ?             3
LINQ	  で何が出来るか。                   4
クエリ構文string[]#names#=#{#"ニャル子",#"クー子",## #    ##     #       #      "ハス太",#"シャンタッ君",#"まひろ"#};#IEnumerable<string>#query#=#...
メソッドチェイン  string[]#names#=#{#"ニャル子",#"クー子",#    #               #        ##        #         #"ハス太",#"シャンタッ君",#"まひろ"#};# I...
§ 用法用量を	   守って正しく	   使い分けましょう。               7
More	  Effective…?   § LINQ	  で、More	  Effective	  って言ったらなんだろ      う?	     § Visual	  Studio	  11	  、Windows	  8もでるよね!	   ...
9
Rx	  (Reactive	  Extensions)公式サイト§ The	  Reactive	  Extensions	  (Rx)...	  § ...is	  a	  library	  to	  compose	  asynch...
Rx	  ってなんぞ?§ Reactive	  Extension	  § 非同期処理と、イベント駆動プログラムを、   observable	  collection	  と	  LINQ	  のクエリ演算子で扱   えるようにしたMSの...
どうして、Rx	  があるのか§ 次期Windows	  OS(Windows8)では、非同期プログ   ラミングを強制させられる。	  § C#	  5.0	  では、async	  /	  await	  構文が追加。	     § ...
Rx	  (IObservable<T>,	  IObserver<T>)と	  今までのLINQ	  	  (IEnumerable<T>,	  IEnumrator<T>)との違い§ IEnumerable<T>:	  	  元からあるコ...
Rx	  のコード例    § 今回のRxのサンプルは、よくあるマウスイベント       の合成です。var$mousemove$=$Observable.FromEventPattern<MouseEventArgs>(this,$"Mo...
Rx	  のコード例    § 今回のRxのサンプルは、よくあるマウスイベント       の合成です。var$mousemove$=$Observable.FromEventPattern<MouseEventArgs>(this,$"Mo...
§ C#を使うときに、	    LINQ(IEnumerable)	  や、	    Rx	  (IObservable)	  を使うと、	    プログラミングが楽しくなりますよ!	                             ...
Upcoming SlideShare
Loading in …5
×

MlnagoyaRx

720 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
720
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MlnagoyaRx

  1. 1. ML    Nagoya  2012/05/26 1
  2. 2. 自己紹介 2
  3. 3. LINQってなんぞ? 3
  4. 4. LINQ  で何が出来るか。 4
  5. 5. クエリ構文string[]#names#=#{#"ニャル子",#"クー子",## # ## # # "ハス太",#"シャンタッ君",#"まひろ"#};#IEnumerable<string>#query#=#from#name#in#names###########################where#name.Last()#==# ###########################select#name;#foreach#(string#name#in#query){Console.WriteLine(name);}## 5
  6. 6. メソッドチェイン string[]#names#=#{#"ニャル子",#"クー子",# # # ## # #"ハス太",#"シャンタッ君",#"まひろ"#};# IEnumerable<string>#query2#=#names# ##.Where(x#=>#x.Last()#==#‘太’)# ##.Select(x#=>#x);# foreach#(string#name#in#query2)#{#Console.WriteLine(name);#}# 6
  7. 7. § 用法用量を   守って正しく   使い分けましょう。 7
  8. 8. More  Effective…? § LINQ  で、More  Effective  って言ったらなんだろ う?   § Visual  Studio  11  、Windows  8もでるよね!   § Rx(Reactive  Extensions)  ?   § Ix  …  ?   8
  9. 9. 9
  10. 10. Rx  (Reactive  Extensions)公式サイト§ The  Reactive  Extensions  (Rx)...  § ...is  a  library  to  compose  asynchronous  and  event-­‐based   programs    § using  observable  collections  and  LINQ-­‐style  query   operators.ì  The  Reactive  Extensions  (Rx)...  ì  非同期とイベントベースプログラムを組み合わせるライブラリ  ì  観察可能なコレクションとLINQスタイルのクエリ演算子を使う 10
  11. 11. Rx  ってなんぞ?§ Reactive  Extension  § 非同期処理と、イベント駆動プログラムを、 observable  collection  と  LINQ  のクエリ演算子で扱 えるようにしたMSのライブラリ。  § イベントや、時間をシーケンス(連続した列)を して考えたものを処理していく。  § IEnumerable<T>  ではなく、IObservable<T>  と IObserver<T>が使われる。   11
  12. 12. どうして、Rx  があるのか§ 次期Windows  OS(Windows8)では、非同期プログ ラミングを強制させられる。  § C#  5.0  では、async  /  await  構文が追加。   § かなり、簡単に非同期処理が書ける。 12
  13. 13. Rx  (IObservable<T>,  IObserver<T>)と  今までのLINQ    (IEnumerable<T>,  IEnumrator<T>)との違い§ IEnumerable<T>:    元からあるコレクション(集合)を 処理する  § IObservable<T>:  イベントや、時間、非同期のものを 処理する。   §  Observable.Range  があるけど…  § どちらも、LINQ  クエリ演算子を使える。   13
  14. 14. Rx  のコード例 § 今回のRxのサンプルは、よくあるマウスイベント の合成です。var$mousemove$=$Observable.FromEventPattern<MouseEventArgs>(this,$"MouseMove")$$$.Sample(TimeSpan.FromSeconds(2))$$$.Merge(Observable.FromEventPattern<MouseEventArgs>(this,$"MouseDown"))$$$.ObserveOnDispatcher()$$$.Subscribe($$$$$x$=> drawSomething(x),$$$$$ex$=>$Console.Write(ex.Message),$$$$$()$=>$Console.Write("end")$$$);$ 14
  15. 15. Rx  のコード例 § 今回のRxのサンプルは、よくあるマウスイベント の合成です。var$mousemove$=$Observable.FromEventPattern<MouseEventArgs>(this,$"MouseMove")$$$.Sample(TimeSpan.FromSeconds(2))$ 実際に合成しているメソッド$$.Merge(Observable.FromEventPattern<MouseEventArgs>(this,$"MouseDown"))$$$.ObserveOnDispatcher()$ UIスレッドで処理をする$$.Subscribe($$$$$x$=> drawSomething(x),$ シーケンスが読み込まれた際のメソッド$$$$ex$=>$Console.Write(ex.Message),$ 例外が吐かれた際に呼ばれる$$$$()$=>$Console.Write("end")$$$);$ シーケンスが読み込み終わった際に呼ばれる 15
  16. 16. § C#を使うときに、   LINQ(IEnumerable)  や、   Rx  (IObservable)  を使うと、   プログラミングが楽しくなりますよ!   16

×