簡體   English   中英

c#從項目中的所有類訪問數據表(使用屬性)

[英]c# Access a DataTable from all classes in project (using properties)

我有一個正在致力於幫助自學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調用BuildDtLog(),然后調用AppendtoLog(“ 1”,“ Info”,“ This is a test log entry”); 單擊frmMain上的按鈕,該條目將添加到數據表中。

我的問題是當我從另一個類向數據表添加條目時。 我在AppendtoLog中收到“對象引用未設置為對象的實例”。 -好像數據表不再存在了嗎?

我研究了屬性,通過幾個示例進行了研究,並了解了它們的工作方式,並且它們可以在這種情況下為我提供幫助,但是我真的很難理解如何將其實現到我的情況中。 有人可以幫忙嗎?

謝謝

使您的日志類及其功能靜態,並從任何類中調用該功能

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM