我想知道是否有更多的OO在C#中创建空间的方法。

从字面上看,空间代码!

我目前有tabs += new String(" ");我不禁觉得这有点让人想起使用""代替String.Empty

我可以用什么来创建不是" "

答案

你可以写

" "

代替

new String(' ')

这有帮助吗?


根据您的工作,您可能想研究StringBuilder.Append超负荷接受角色和"重复"计数:

var tabs = new StringBuilder();
tabs.Append(' ', 8);

或进入string 构造函数从字符中构造字符串"重复"计数:

var tabs = new string(' ', 8);

这是一个企业的OO解决方案,可满足您所有空间的需求:

public abstract class SpaceFactory
{
    public static readonly SpaceFactory Space = new SpaceFactoryImpl();

    public static readonly SpaceFactory ZeroWidth = new ZeroWidthFactoryImpl();

    protected SpaceFactory { }

    public abstract char GetSpace();

    public virtual string GetSpaces(int count)
    {
        return new string(this.GetSpace(), count);
    }

    private class SpaceFactoryImpl : SpaceFactory
    {
        public override char GetSpace()
        {
            return '\u0020';
        }
    }

    private class ZeroWidthFactoryImpl : SpaceFactory
    {
        public override char GetSpace()
        {
            return '\u200B';
        }
    }
}

来自: stackoverflow.com