我有一个应用程序,我一直在努力帮助自己教c#.net。我已经开始使用类来组织我的项目,并且无需在任何地方复制/粘贴代码。
在我的主窗体上,我有一个Datalist视图,我打算将其用作输出日志条目的控制台。
我创建了一个名为“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);
}
我从构建DataTable的frmMain调用BuildDtLog() 然后我调用AppendtoLog(“1”,“Info”,“这是一个测试日志条目”);从frmMain上的按钮开始,条目被添加到数据表中。
我的问题是当我来自另一个类的数据表添加一个条目。我在AppendtoLog中得到“对象引用未设置为对象的实例”。 - 好像数据表不再存在了?
我看过属性,我已经通过几个例子来了解它们是如何工作的,并且他们可以在这种情况下帮助我,但我真的很难理解如何在我的情况下实现它。有人可以帮忙吗?
由于
答案 0 :(得分:0)
使您的日志类及其函数保持静态,并从任何类
调用该函数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);
}