You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using System; using System.Collections.Generic; using System.Text;
namespace Apewer.Internals {
internal class TextBuilder {
private StringBuilder _sb = null; private string _value = null;
/// <summary>获取或设置字符串内容。</summary>
public string Value { get { if (_value == null) _value = _sb.ToString(); return _value; } set { Clear(); Append(value); } }
/// <summary>追加内容。</summary>
public void Append(string argStrings) { if (string.IsNullOrEmpty(argStrings)) return; _value = null; _sb.Append(argStrings); }
/// <summary>追加内容。</summary>
public void Append(IEnumerable<string> argStrings) { if (argStrings == null) return; _value = null; foreach (var vstring in argStrings) if (!string.IsNullOrEmpty(vstring)) _sb.Append(vstring);
}
/// <summary>追加内容。</summary>
public void Append(params string[] argText) { _value = null; foreach (var vtext in argText) if (!string.IsNullOrEmpty(vtext)) _sb.Append(vtext); }
/// <summary>追加内容。</summary>
public void Append(char argChar) { _value = null; _sb.Append(argChar.ToString()); }
/// <summary>追加内容。</summary>
public void Append(IEnumerable<char> argChar) { if (argChar == null) return; _value = null; foreach (var vchar in argChar) _sb.Append(vchar.ToString()); }
/// <summary>追加内容。</summary>
public void Append(params char[] argChar) { _value = null; foreach (var vchar in argChar) _sb.Append(vchar.ToString()); }
/// <summary>清空内容,重建对象。</summary>
public void Clear() { _value = null; _sb = new StringBuilder(); }
/// <summary>内容长度。</summary>
public int Length { get { return _sb.Length; } }
/// <summary>替换内容子中的字符串。</summary>
public void Replace(string argOld, string argNew) { if (!string.IsNullOrEmpty(argOld)) { _value = null; var vnew = string.IsNullOrEmpty(argNew) ? "" : argNew; _sb.Replace(argOld, vnew); } }
/// <summary>获取字符串内容。</summary>
public override string ToString() { if (_value == null) _value = _sb.ToString(); return _value; }
/// <summary>构造函数。</summary>
public TextBuilder() { _sb = new StringBuilder(); }
/// <summary>构造函数。</summary>
public TextBuilder(string argContent) { _sb = new StringBuilder(); if (string.IsNullOrEmpty(argContent)) return; _sb.Append(argContent); }
}
}
|