从项目中的所有类访问数据表(使用属性)

本文关键字:数据表 属性 访问 项目 | 更新日期: 2023-09-27 18:02:20

我一直在做一个应用程序来帮助我自学c#。net。我已经开始使用类来组织我的项目,这样我就不必到处复制/粘贴代码了。

在我的主要形式我有一个数据视图,我打算用它作为输出日志条目的控制台。

我创建了一个名为"logger"的类,它具有以下内容:

    public DataTable DTLog = new DataTable();
public void BuldDTLog()
        {
            DTLog.Columns.Add("Time");
            DTLog.Columns.Add("Type");
            DTLog.Columns.Add("Level");
            DTLog.Columns.Add("Text");
        }
        public void AppendtoLog(String Level, String Type, String Text)
        {
            DTLog.Rows.Add(DateTime.Now, Level, Type, Text);
        }

我从构建数据表的frmMain中调用buildtlog ()然后调用AppendtoLog("1", "Info", "这是一个测试日志条目");从frmMain上的一个按钮,并将条目添加到数据表中。

我的问题是当我从另一个类添加一个条目到数据表。我在AppendtoLog中得到"对象引用未设置为对象的实例"。-好像datatable已经不存在了?

我已经看了属性,我已经运行了几个例子,了解他们是如何工作的,他们可以帮助我在这种情况下,但我真的很难理解如何实现它到我的情况。有人能帮忙吗?

谢谢

从项目中的所有类访问数据表(使用属性)

将日志类及其函数设置为静态,并从任何类中调用该函数

public static logger
{
 public DataTable DTLog = new DataTable();
public static void BuldDTLog()
        {
            DTLog.Columns.Add("Time");
            DTLog.Columns.Add("Type");
            DTLog.Columns.Add("Level");
            DTLog.Columns.Add("Text");
        }
        public static void AppendtoLog(String Level, String Type, String Text)
        {
            DTLog.Rows.Add(DateTime.Now, Level, Type, Text);
        }
}
public class otherClass
{
logger.BuldDTLog();
logger.AppendtoLog(param1,param2,param3);
}