繁体   English   中英

带有私有方法的静态方法[C#]

[英]static method with private methods within it [C#]

我想制作一个包含静态方法 ConsoleSquare()的 Draw ,并希望将该类中的所有其他方法都隐藏( 私有 )。但是我在标记的位置出现了错误,并且仍然不知道如何解决它们实现相同的想法( ConsoleSquare() -静态;所有其他方法都隐藏)

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

除非您显式提供实例,否则静态方法无法调用实例方法。 如果要直接从ConsoleSquare调用, ConsoleSquare SpacesLine标记为静态。

将它们声明为private static

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

也使私有方法静态。

我建议您将所有与Draw相关的方法封装在另一个类中。 不要在其中放置任何静态方法。 在此也让所有方法公开。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM