1

每次按下按钮时,我都会在文件中写入一行文本。

我已经定义了一个这样的静态类:

public static class PalletRecord
{
    public static string MachineName { get; set; }
    public static DateTime TimeStamp { get; set; }
    public static string BranchPlant { get; set; }
    public static string Location { get; set; }
    public static string Data { get; set; }
    public static string ItemCode { get; set; }
    public static string ItemDescription { get; set; }
    public static decimal Quantity { get; set; }
}

每次我需要写入文件时,我都会填充静态类属性并使用 File.AppendAllLines 写入文本文件。

我应该用非静态类来做吗?

4

2 回答 2

6

是的 !使用静态来保持这样的状态会给你带来麻烦。如果您现在或将来可能需要多线程,这可能尤其如此,因为静态状态由所有线程共享。另一个问题可能是一个不完整的初始化错误,使您有 ½ 来自先前记录的状态和 ½ 来自新记录的状态。

一种更好的方法是使属性成为非静态的,并为每个记录创建一个具有正确属性的类实例。您可以创建一个设置属性的构造函数,这样您就知道只要有实例就拥有有效的记录(也可以考虑将属性设置器设为私有)。

这也更好地模拟了您正在处理的问题。您在文件中写入多个不同的记录,这最好由表示记录的类的实例来表示。在我看来,为你需要编写的每条记录使用你的类的实例是正确的干净的面向对象的方式来做到这一点。

于 2012-11-30T17:56:25.437 回答
0

没有大的区别。如果它有效,它就有效。创建一个新类会占用更多内存。我会创建一个新课程,但无论如何也没什么大不了的。如果它保存在数据库中并被丢弃,则您的解决方案有效。如果记录保存在内存中,我将为每条记录创建一个新类。

于 2012-11-30T17:57:22.123 回答