プログラムを閉じて再度実行した後に使用できるように、変数を保存 (保存) するにはどうすればよいですか? 2D配列であるため、saveFileDialogを使用できません。他のプログラムには独自の拡張機能があります。独自の拡張機能を作成することはできますか? 「プロジェクトを名前を付けて保存...」のようなもの。
2 に答える
オブジェクトをディスクに保存する場合は、データのファイル形式を工夫するか、既存の一般的なファイル形式のいずれかを使用する必要があります。
.Net では、おそらく最も簡単な方法は、バイナリ フォーマッタを使用してこれを行うことです。
void Save(SomeType obj, string fileName)
{
using (var stream = File.OpenWrite(fileName))
{
var formatter = new BinaryFormatter();
formatter.Serialize(stream, obj);
}
}
obj
オブジェクトとそれが参照するすべてのオブジェクトはシリアライズ可能である必要があります。ほとんどのプリミティブ型は既にシリアライズ可能であり、[Serializable]
属性を使用して独自の型をシリアライズ可能にすることができます。
このLoad()
方法は、 と を使用する点を除いて同様File.OpenRead()
ですformatter.Deserialize()
。
ファイル名の付け方は自由ですが、もちろんそのままでも構いませんSaveFileDialog
。
では、さまざまなシリアライゼーション タイプを使用できます.NET
。それぞれに長所と短所があります。したがって、ニーズに最も適したものを選択する必要があります。時間をかけて、少なくともそれらの概要を把握する価値があります。
例えば:
最も一般的なアプローチはバイナリ シリアライゼーション (svick が提供) で、高速でメモリ フットプリントが小さいですが、スケーラビリティの点で他の方法よりも柔軟性が明らかに劣ります。標準シリアライゼーション.NET
では型情報も保存されるため、データだけでなく、実際に保存される型との結合が難しくなります。
1回の回答ですべてを説明するのは難しいので、こちらをご覧になることをお勧めします
幸運を