나는이 질문에별로 의의가 없다고 생각한다. 분명히 제네릭 형식 부분 밖에서 나왔고 나머지를 테스트하여 기능을 확인해야했기 때문에 Google에서 올바른 용어를 사용하지 않습니다. 내가 알고있는 데이터의 일부를 조작하는C# 재사용을위한보다 일반적인 방법을 만드는 것이 더 좋은 방법일까요?
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>();
}
그리고 다른 약간의 일반적인 변형이에
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);
}
}
:
나는 다음과 같은 방법에서 갔다 사용 된 목록 중 하나에 표시됩니다.제 질문은 더 좋은 방법입니까? 이것들은 큰 커스텀 물건이 아니기 때문에리스트에있는 구조체 일뿐입니다. 이 데이터는 결국 DB가 될 예정이므로 클래스를 사용하고 싶지 않습니다.
나는'목록을 대체 할 것이다 '를 IEnumerable 와 함께 사용하면 모든 컬렉션 클래스를 사용할 수 있습니다 (배열, 해시 등) –
Neil
더 좋은 방법은 무엇을 의미합니까? 찾고있는 개선 사항이 있습니까? –
늦게 응답해서 죄송합니다. 스택이 나를 이메일로 보낼 것이라고 생각했습니다. 나는 그것을 현재의 프로젝트에서 미래의 사용이나 확장을 위해 더 일반적인 것으로 만들기 위해 그것을 향상시킬만한 것을 찾고있다. – MattyMatt