2016-05-23 11 views
0

byte[]をストリームに変換し、何百回も実行する必要があるため、この機能を拡張メソッドとして使用したいと考えています。デストラクタを破らずにExtensionメソッドからStreamを返すにはどうすればよいですか?

using(MemoryStream m = new MemoryStream()) { 
    ProtoBuf.Serializer.Serialize(m, fiveHundredBytesHere); 
    m.Seek(0, 0); 
} 

この繰り返し操作から自分のコードをクリーンアップする正しい方法は何ですか?

+0

あなたはそうではありません。ストリームを後で使用する必要がある場合は、 'using'構造体を使用せず、自分自身でDisposeを使用してください。 – ManoDestra

答えて

3

「デストラクタを破損することなく拡張メソッドからストリームを返すにはどうすればよいですか?」

デストラクタを破棄しないストリームを使用するメソッドでコールバックを作成するか、usingステートメントを省略してストリームを返して呼び出し元のコードに破棄することができます。

+0

コールバックメソッドは恐ろしい選択でしょう。 –

関連する問題