我想制作一个类 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);
}
}
答案 0 :(得分:9)
除非明确提供实例,否则静态方法无法调用实例方法。如果您想直接从Spaces
调用这些内容,请将Line
和ConsoleSquare
标记为静态。
答案 1 :(得分:4)
将其声明为private static
。
答案 2 :(得分:3)
您需要一个实例来调用实例方法。如果不提供实例,则无法从静态方法调用实例方法。
答案 3 :(得分:1)
使私有方法也是静态的。
答案 4 :(得分:0)
我建议你将所有Draw
相关方法封装在另一个类中。不要在那里放任何静态方法。让所有方法都公之于众。
定义另一个类;称之为DrawUI
或其他什么。让它有静态方法。在此静态方法中实例化Draw
类,使用其方法