0

嘿,我有两节课

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 中的函数

4

4 回答 4

1

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

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

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

最后,这是 C#,风格规定类名应该是 PascalCased。养成一个好习惯。

于 2015-05-08T15:29:25.530 回答
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)
    {
    }
}
于 2015-05-08T15:43:04.903 回答
0

我认为你想要像适配器模式这样的东西

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);
    }
}
于 2015-05-08T15:43:52.687 回答
0
class Main
{
    public exLog exLog;
    public Main()
    {
        exLog = new exLog();
        exLog.ReadFileString("", "");
    }
}
于 2015-05-08T15:47:05.773 回答