如何正确地清理课程

时间:2017-12-07 11:17:26

标签: c# vb.net

我有一个具有读取数据文件功能的类。读取时,该类将此数据存储在公共属性中。

之后,我将puplic属性的内容写入数据库。

然后它重复。这意味着我再次阅读这个类的数据。

在重复之前我想要清理课程。

最好的方法是什么?

最好是手动清除公共属性的内容,还是更好地处理该类。也许这是更优雅的方式吗?

3 个答案:

答案 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方式。