一次写一条记录,使用一个静态类?

e4r*_*dog 1 .net c# class

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

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

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; }
}
Run Code Online (Sandbox Code Playgroud)

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

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

dri*_*iis 6

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

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

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