每次按下按钮,我都会在文件中写一行文字。
我已经定义了一个这样的静态类:
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写入文本文件。
我应该用非静态类做到吗?
答案 0 :(得分:6)
是的!使用静态来保持这样的状态会让你遇到麻烦。如果您现在或将来可能需要多线程,则可能尤其如此,因为静态由所有线程共享。另一个问题可能是一个不完整的初始化错误,让你从前一个记录中获得½状态,从新记录中获得½状态。
更好的方法是使属性非静态,并为每个记录创建具有正确属性的类的一个实例。您可以创建一个设置属性的构造函数,这样您就知道每当有实例时都有一个有效的记录(也考虑将属性设置器设为私有)。
这也更好地模拟了您正在使用的问题。您在文件中写入多个不同的记录,这最好由表示记录的类的实例表示。在我看来,为你需要编写的每个记录使用你的类的实例是适当的干净的面向对象的方式来做到这一点。
答案 1 :(得分:0)
没有太大的区别。如果它的工作原理。创建新类使用更多内存。我会创建一个新课程,但无论如何都不是什么大问题。如果它保存在数据库中并被丢弃,那么您的解决方如果记录保存在内存中,我会为每条记录创建一个新类。