c#主类包括“子类”

时间:2015-05-08 15:27:55

标签: c# call mainclass

嘿,我有两个班级

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

我喜欢称它们为主要的功能

4 个答案:

答案 0 :(得分:1)

您可以在实例化后立即调用它。

{{1}}

此外,如果您不在同一个程序集中,则需要公开exLog。

最后,这是C#,并且样式规定类名应该是PascalCased。形成这是一个好习惯。

答案 1 :(得分:0)

我认为您对类,实例,构造函数和方法感到困惑。这不起作用:

newMain.exLog("", "");

因为在这种情况下exLog属性,而不是方法。 (它令人困惑,因为你对类和属性使用相同的名称,这就是为什么大多数公约都不鼓励这样做的原因)。

您可以在实例上调用方法

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

但是您需要在exLog课程中更改方法的名称(并添加返回类型),这样他们就不会被解释为构造函数:

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

答案 2 :(得分:0)

你想要Adapter Pattern

之类的东西
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);
    }
}

答案 3 :(得分:0)

class Main
{
    public exLog exLog;
    public Main()
    {
        exLog = new exLog();
        exLog.ReadFileString("", "");
    }
}