私は、多かれ少なかれ推測することによって何をコーディングしたのかが問題ではないので、これはあまり問題ではないと思います。私は明らかにジェネリック型の部分の外に出てきて、機能を確認するために残りの部分をテストしなければならなかったので、Googleで適切な用語を使用していません。C#再利用のためのより一般的な方法の作成、より良い方法はありますか?
私はこのような方法から行ってきました:これまで
private void SaveHw()
{
XmlSerializer xml = new XmlSerializer(typeof(List<Hardware>));
try
{
using (StreamWriter sw = new StreamWriter(fileHw))
{
xml.Serialize(sw, lstHw);
}
}
catch (Exception ex)
{
MessageBox.Show("Failed to update local hardware XML.\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
:
private void SaveList<T>(List<T> lst, string file)
{
XmlSerializer xml = new XmlSerializer(typeof(List<T>));
try
{
using (StreamWriter sw = new StreamWriter(file))
{
xml.Serialize(sw, lst);
}
}
catch (Exception ex)
{
MessageBox.Show("Failed to update local hardware XML.\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
この
private List<T> LoadList<T>(List<T> lst, string file)
{
// don't bother if the file does not exist.
if (File.Exists(file))
{
// straight forward
XmlSerializer xml = new XmlSerializer(typeof(List<T>));
try
{
using (StreamReader sr = new StreamReader(file))
{
return (List<T>)xml.Deserialize(sr);
}
}
catch
{
MessageBox.Show("Failed to load local hardware XML.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
return new List<T>();
}
そして、他のわずかな一般的なバリエーション私が知っているデータの一部を操作します使用されるリストのいずれかに存在します。
私の質問は、より良い方法がありますか?これらは大きなカスタムなものではないので、リスト内の構造体です。このデータは最終的にはdbであるはずですので、クラスを使用したくありませんでした。私はクラスをより拡張させるために追加します
への変更を必要としない追加されます'を' IEnumerable 'と置き換えて、コレクションクラスを使用できるようにします(配列、ハッシュセットなど) –
Neil
より良い方法はどういう意味ですか?あなたが探している改良は何ですか? –
遅刻して申し訳ありませんが、私はスタックが私にメールを送るだろうと考えました。私は、現在のプロジェクトの将来の使用や拡張のために、より一般的にするために改善するものを探しています。 – MattyMatt