我有一个具有读取数据文件功能的类。读取时,该类将此数据存储在公共属性中。
之后,我将puplic属性的内容写入数据库。
然后它重复。这意味着我再次阅读这个类的数据。
在重复之前我想要清理课程。
最好的方法是什么?
最好是手动清除公共属性的内容,还是更好地处理该类。也许这是更优雅的方式吗?
答案 0 :(得分:1)
让我们假设您的课程类似于:
public class MyClass
{
public double IntField { get; set; }
public string StringField { get; set; }
}
您的应用程序类似于:
public class MyApp
{
public void Execute() {
var myClass = new MyClass();
// set properties
myClass.IntField = 123;
myClass.StringField = "Hello";
// save to DB
}
}
每次运行应用程序时,它都会运行Execute
方法,该方法将创建类的新实例。这样所有类属性都将为空或者" clean"正如你所说的那样。
答案 1 :(得分:0)
创建新方法,将其命名为“clear_data”,在从执行此操作的函数加载数据之前调用它。也可能是你需要从析构函数调用它以防止内存泄漏(如果你有指向某些已分配内存的指针)。
答案 2 :(得分:0)
Memento模式怎么样?可能对你有用:
https://www.codeproject.com/Articles/186184/Memento-Design-Pattern
或者,正如已经指出的那样,您还有其他3种可能性:
- 创建一个方法Clear()
,将属性设置为默认值,
- 如果您有一些非托管资源,可以使用IDisposable接口,
- 创建静态readonly属性,保存类的Empty实例并重新分配它。但我会选择Memento / Clear方式。