簡體   English   中英

由於 C# 中的保護級別而無法訪問

[英]Inaccessible due to protection level in C#

我有包含抽象LoggerFile類的引用object 我正在嘗試訪問它。 但由於protection級別,它顯示無法訪問。 請任何人幫助我理解它。

abstract class LoggerFile
{
     private static String logFile = null;

        /// <summary>
        ///     Logfile Property
        /// </summary>
        public static string LogFile { get => logFile; set => logFile = value; }

        /// <summary>
        ///     Set logFile
        /// </summary>
        /// <param name="logFile">The absolute path to file for writting logs</param>
        public static void SetLogFile(String logFile)
        {
            LogFile = LogFile ?? logFile;
            if (!File.Exists(LogFile))
            {
                File.Create(LogFile).Close();
            }
            }
}
}

我在另一堂課上調用這個。

using DriverAutomation.Loggin[enter image description here][1]g;
    public class Devcon
    {
        private static Devcon devcon = null;

        private readonly String devconEXE;
    private readonly String devconPath;
    private readonly String devconExeName;
    private readonly Logger logger;

    /// <summary>
    ///     DevconStatus Property for devcon status outcome backup
    /// </summary>
    public readonly String devconStatus;

    /// <summary>
    ///     Initializes the Devcon Singleton Instance
    /// </summary>
    private Devcon()
    {
        devcon = this;
        logger = Logger.GetLogger(GetType().Name, LoggerFile.LogFile);
        devconExeName = "devcon.exe";
        devconEXE = Path.Combine(Directory.GetCurrentDirectory(), devconExeName);
}
}

這是在創建的解決方案中工作的。 但是使用引用對象它顯示錯誤。 請找圖。

將您的課程聲明為公共和非抽象課程,我認為它會解決您的問題。

public class LoggerFile

順便說一句,為什么它甚至是Abstract 如果你只有一些靜態成員,也許你應該把它變成靜態本身。

盡管在大多數記錄器實現中,遵循單例模式是有意義的(少數情況之一)

暫無
暫無

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

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