1

ここには、たとえば次のように定義されている関数がいくつかあります

private int WriteLogikParameterTyp(FileStream filestream)

私は変更できません。私は彼らにMemoryStreamオブジェクトに書き込んでもらいたい。これは可能ですか?

4

5 に答える 5

1

いいえ。

FileStream は具体的な実装です。

しかし、これはプライベートなメソッドなので、すべての内部使用を見つけることができるので、簡単に変更できるはずですか? メソッド シグネチャを FileStream ではなく Stream に置き換えることを提案します。

まあ...一時ファイルを作成しない限り、それに書き込んでからメモリに読み込みます。

于 2009-01-28T10:41:54.223 に答える
1

関数のシグネチャを変更してより一般的な型を受け入れることはできないため、一時ファイルに書き出してから、その内容を MemoryStream インスタンスに読み込むことをお勧めします。

于 2009-01-28T10:42:14.940 に答える
0

いいえ。

それらにアクセスできない場合は、リフレクターを使用してそれらがどのように機能するかを調べ、独自のバージョンの MemoryStream を実装することができます。合法かどうかは別問題ですが…

于 2009-01-28T10:43:48.883 に答える
0

いいえ。 FileStream は、呼び出すことができるコンストラクターを公開していないため、エミュレートするために継承することはできません。

于 2009-01-28T10:48:29.313 に答える
0

提案;

このようにメソッドの名前を変更します

private int WriteLogikParameterTyp_Ex(Stream stream);

次に、元の署名を次のように再作成します。

private int WriteLogikParameterTyp(FileStream filestream)
{
     return WriteLogikParameterTyp_Ex(filestream);
}
于 2009-01-28T10:49:13.087 に答える