2017-02-17 1 views
-3

Google検索からこの行をコピーしました。ラムダ式myimage.Source = ImageSource.FromStream(()=>新しいMemoryStream(imagebytes));

myimage.Source = ImageSource.FromStream(() => new MemoryStream(imagebytes)); 

これは完全に機能します。

しかし、私はC#の初心者です。このコード行が何をしているのか分かりません。

私はアンティークVB.Netプログラマですので、誰かが英語でそれを英語に翻訳できますか。

答えて

1

基本的には、どのようなあなたは、このコードを実行し、次のとおりです。

1)あなたは)

2.いくつかのバイトを取る(画像はに変換されたバイト配列)このバイトのMemoryStreamオブジェクトをビルドアップバッファとして配列(ソース)

3)共有メンバ関数FromStream介しImageSourceオブジェクトを構築し(これはdelegateかかり - いくつかのを返すラムダ式、Stream又はStreamの派生何かを返す関数、すなわち(誘導体) - と、それを

4を実行)ラムダ式はImageSource.FromStream(一方のストリームを返しますので、あなたのmyimage.Source

+0

ああにこれを割り当て)のMemoryStreamを受け入れないでしょう。 Googleにいつもありがとう(いつか)。 – infopete

+0

実際ではありません。lamda関数はMemoryStreamオブジェクトを返します。 FromStream()は、Stream(継承されたオブジェクト)を返す関数を必要とするので、Stream、FileStream、StreamWriter、MemoryStreamなどを返すことができます。... 2beshort:継承パスにStreamを持つものすべて。しかし、出力専用ストリームから読み込みストリームを作成した後は、StreamWriterを返すのは得策ではありませんが、MemoryStream – Radinator