其中包含私有方法的静态方法[C#]

时间:2011-02-18 11:21:05

标签: c# static-methods

我想制作一个 Draw ,它将具有静态方法 ConsoleSquare(),我想要使该类中的所有其他方法都隐藏(私有)。但我在标记的位置出现错误,我不知道如何解决它们仍然实现相同的想法( ConsoleSquare()< / em> - 静态;隐藏所有其他方法)

class Draw {
private string Spaces(int k){
    string str="";
    for(;k!=0;k--)
        str+='\b';
    return str;
    }
private string Line(int n,char c){
    string str="";
    for(;n!=0;n--)
        str+=c;
    return str;
    }
public static void ConsoleSquare(int n,char c){
    string line  = Line(n,c); // ovdje
    string space = c + Spaces(n - 2) + c; //ovdje
    Console.WriteLine(line);
    for (; n != 0; n--)
        Console.WriteLine(space);
    Console.WriteLine(line);
    }
}

5 个答案:

答案 0 :(得分:9)

除非明确提供实例,否则静态方法无法调用实例方法。如果您想直接从Spaces调用这些内容,请将LineConsoleSquare标记为静态。

答案 1 :(得分:4)

将其声明为private static

答案 2 :(得分:3)

您需要一个实例来调用实例方法。如果不提供实例,则无法从静态方法调用实例方法。

答案 3 :(得分:1)

使私有方法也是静态的。

答案 4 :(得分:0)

我建议你将所有Draw相关方法封装在另一个类中。不要在那里放任何静态方法。让所有方法都公之于众。

定义另一个类;称之为DrawUI或其他什么。让它有静态方法。在此静态方法中实例化Draw类,使用其方法