在使用C#做应用程序开发过程中,一个项目往往涉及公有变量的定义和使用,多了解和掌握这些基础知识对开发是有益处的。
对于项目中的公有变量,通常情况下有哪几种定义和使用方式?
一、在程序中定义和使用
比如,我们在Program类中定义:
public static string Str = "公有变量";
那么在其他地方可以通过下面方式使用(Program是静态类,不需要实例化):
MessageBox.Show(Program.Str, "");
刚开始接触C#的程序员比较习惯这样的方式。
二、定义公有类进行封装
比如,我们可以在项目中定义一个公有类:
class GlobalVar
{
private static string _DBStr="连接属性"; // 私有静态字段
public static string GetDBConn // 公有静态属性
{
get { return _DBStr; }
set { _DBStr = value; }
}
}
在其他地方可以直接使用:
MessageBox.Show(DBConn.StrConn, "访问公用变量");
这样的方式在程序开发中更为常见。这种方式比较灵活,通过定义类的字段和访问属性对公有对象进行定义和使用,可以对访问根据需要加以限制。
三、使用文本文件进行存储
以前喜欢使用,现在很少使用了,见《C#读取文本配置文件》。
四、通过JSON文件进行存储
通过NuGet包管理器安装Newtonsoft.Json。
新建一个名为"jsconfig1.json"的JSON文件,内容如下:
{
"DBConn": "连接属性",
"NetWorkConfig": {
"IPAddress": "IP地址",
"SubMask": "子网掩码",
"Gateway": "网关地址"
}
}
定义访问类:
public class Config
{
public string DBConn { get; set; }
public JObject NetWorkConfig { get; set; }
}
添加引用:
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
通过程序来访问:
//读取JSON文件
string json = System.IO.File.ReadAllText("D:/CSharp/jsconfig1.json");
//反序列化JSON到Config对象
Config config = JsonConvert.DeserializeObject<Config>(json);
//读取变量
string StrDBConn = config.DBConn;
string StrIPAddress = config.NetWorkConfig["IPAddress"].ToString();
string StrSubMask = config.NetWorkConfig["SubMask"].ToString();
string StrGateway = config.NetWorkConfig["Gateway"].ToString();
//输出公有变量的值
textBox1.Text += StrDBConn + Environment.NewLine;
textBox1.Text += StrIPAddress + Environment.NewLine;
textBox1.Text += StrSubMask + Environment.NewLine;
textBox1.Text += StrGateway + Environment.NewLine;
现在这样的方式比较流行了。在使用C#进行应用程序的开发中,Web前端使用JSON文件格式比较多,在窗体中调用后端的服务就可以使用JSON格式来通讯。
五、通过XML文件进行存储
新建一个名为"XMLFile1.xml"的XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<Config>
<DBConn>连接配置</DBConn>
<NetWorkConfig>
<IPAddress>IP地址</IPAddress>
<SubMask>子网掩码</SubMask>
<Gateway>网关地址</Gateway>
</NetWorkConfig>
</Config>
新建访问类:
public class XmlConfig
{
public string DBConn { get; set; }
public XmlNode NetWorkConfig { get; set; }
}
引用:
using System.Xml;
通过代码进行访问:
//创建XmlDocument对象
XmlDocument xmlDoc = new XmlDocument();
//加载XML文件
xmlDoc.Load("D:/XMLFile1.xml");
//创建 Config 对象
XmlConfig config = new XmlConfig();
//获取DBConn节点的值
config.DBConn = xmlDoc.SelectSingleNode("/Config/DBConn").InnerText;
//获取NetWorkConfig节点
config.NetWorkConfig = xmlDoc.SelectSingleNode("/Config/NetWorkConfig");
//访问和使用公有变量
string StrDBConn = config.DBConn;
string StrIPAddress = config.NetWorkConfig.SelectSingleNode("IPAddress").InnerText;
string StrSubMask = config.NetWorkConfig.SelectSingleNode("SubMask").InnerText;
string StrGateway = config.NetWorkConfig.SelectSingleNode("Gateway").InnerText;
// 输出公有变量的值
textBox1.Text += StrDBConn + Environment.NewLine;
textBox1.Text += StrIPAddress + Environment.NewLine;
textBox1.Text += StrSubMask + Environment.NewLine;
textBox1.Text += StrGateway + Environment.NewLine;
当然还有其他的方式,比如通过本地数据库、一般性的加密文本、二进制的文件等等,可以根据项目的需要进行选择。