我想知道是否有更多的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';
}
}
}