保存程序启动时加载的变量 (WFA) C#
本文关键字:WFA 变量 程序 启动 加载 保存 | 更新日期: 2023-09-27 18:36:20
要求
用户在他使用的设备上键入序列号。然后程序将此序列号用于所有功能。这样做是为了使用户可以轻松更换所述设备,而无需任何技术帮助 - 只需在应用程序中键入新的序列号即可。
但是,我这样做的方式是,用户每次打开程序时都需要输入序列号,这有点乏味。
有没有办法存储最后输入的序列号,以便在下次运行程序时加载?
我已经检查了这个链接。虽然看起来很有希望,但它并没有为我解决问题。我将在下面用我的代码进行解释。
以下是要求用户输入序列号的代码:
byte[] xbee { get; set; }
var xbee_serienr = prop1_serienr.Text;
xbee = new byte[xbee_serienr.Length / 2];
for (var i = 0; i < xbee.Length; i++)
{
xbee[i] = byte.Parse(xbee_serienr.Substring(i * 2, 2), NumberStyles.HexNumber);
}
我尝试了上述链接,并像这样保存:
prop1_serienr string user 0013A20040A65E23
然后在代码中使用它,如下所示:
prop1_serienr = Xbee.Properties.Settings.Default.prop1_serienr;
//keep in mind I made the silly decision using Xbee as namespace and xbee as a variable
但prop1_serienr以这种方式保持空。
任何关于如何使这比每次程序启动时都键入它更容易的提示或指南将不胜感激。如果这是我唯一的选择,我将采用硬编码序列号,然后在每次更改设备时更改代码。
硬编码序列号真的不是一种选择,尤其是当"保存序列号"之类的东西一点也不复杂时(但就像所有事情一样,如果你允许的话,它可能很复杂)。
非常简单的方法:
public partial class Form1 : Form
{
private byte[] _xbee;
public Form1()
{
if (!File.Exists("serial.txt"))
{
File.Create("serial.txt");
}
else
{
_xbee = File.ReadAllBytes("serial.txt");
}
InitializeComponent();
}
private void btnSaveSerial_Click(object sender, EventArgs e)
{
byte[] xbee { get; set; }
var xbee_serienr = prop1_serienr.Text;
xbee = new byte[xbee_serienr.Length / 2];
for (var i = 0; i < xbee.Length; i++)
{
xbee[i] = byte.Parse(xbee_serienr.Substring(i * 2, 2), NumberStyles.HexNumber);
}
_xbee = xbee;
File.WriteAllBytes("serial.txt", xbee);
}
}
它在启动时从文件中读取字节(如果文件存在)。当用户更改串行(并单击按钮保存)时,它将字节写入文件。
正如我所说,你可以随心所欲地让这件事变得简单或复杂,但这应该让你继续前进。