簡體   English   中英

c#Main Class包含“子類”

[英]c# Main Class include “subclass”

嘿我有兩節課

class Main
{
    public exLog exLog;
    public Main()
    {

    }
}

class exLog
{
    public exLog()
    {

    }
    public exLog(String where)
    {

    }
    public exLog(String where, String message)
    {

    }
}

我試圖直接給exLog打電話而不給exLog一個參數。 因此,我可以使用Main方法調用任何類。 我應該怎么做?

public String ReadFileString(String fileType, String fileSaveLocation)
{
    try
    {
        return "";
    }
    catch (Exception)
    {
        newMain.exLog("", "");
        return null;
    }
}

我喜歡稱它們為Main中的功能

您可以在實例化它后立即調用它。

public Main()
{
    exLog = new exLog();
    exLog.MethodInClass();
}

另外,如果您不在同一程序集中,則需要將exLog公開。

最后,這是C#,樣式指示類名稱應為PascalCased。 這是養成的好習慣。

我認為您對類,實例,構造函數和方法感到困惑。 這不起作用:

newMain.exLog("", "");

因為exLog在這種情況下是屬性 ,而不是方法 (這令人困惑,因為您對類和屬性使用了相同的名稱,這就是為什么大多數約定不鼓勵這樣做的原因)。

您可以在實例上調用方法

newMain.exLog.Log("", "");

但是然后您需要在exLog類中更改方法的名稱(並添加返回類型),以使它們不會被解釋為構造函數:

class exLog
{
    public void Log() 
    {
    }
    public void Log(String where)
    {
    }
    public void Log(String where, String message)
    {
    }
}

Methinks,你想要像適配器模式這樣的東西

class Main
{
    private exLog exLog;
    public Main()
    {

    }

    public void ExLog()
    {
        exLog = new exLog();
    }
    public void ExLog(String where)
    {
        exLog = new exLog(where);
    }
    public void ExLog(String where, String message)
    {
        exLog = new exLog(where, message);
    }
}
class Main
{
    public exLog exLog;
    public Main()
    {
        exLog = new exLog();
        exLog.ReadFileString("", "");
    }
}

暫無
暫無

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

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