Sys.StringBuilder = function Sys$StringBuilder(initialText) {
/// <param name="initialText" optional="true" mayBeNull="true"></param>
var e = Function._validateParams(arguments, [
{name: "initialText", mayBeNull: true, optional: true}
]);
if (e) throw e;
this._parts =
(typeof(initialText) !== 'undefined' && initialText !== null && initialText !== '') ?
[initialText.toString()] : [];
this._value = {};
this._len = 0;
}
function Sys$StringBuilder$append(text) {
/// <param name="text" mayBeNull="true"></param>
var e = Function._validateParams(arguments, [
{name: "text", mayBeNull: true}
]);
if (e) throw e;
this._parts[this._parts.length] = text;
}
function Sys$StringBuilder$appendLine(text) {
/// <param name="text" optional="true" mayBeNull="true"></param>
var e = Function._validateParams(arguments, [
{name: "text", mayBeNull: true, optional: true}
]);
if (e) throw e;
this._parts[this._parts.length] =
((typeof(text) === 'undefined') || (text === null) || (text === '')) ?
'\r\n' : text + '\r\n';
}
function Sys$StringBuilder$clear() {
if (arguments.length !== 0) throw Error.parameterCount();
this._parts = [];
this._value = {};
this._len = 0;
}
function Sys$StringBuilder$isEmpty() {
/// <returns type="Boolean"></returns>
if (arguments.length !== 0) throw Error.parameterCount();
if (this._parts.length === 0) return true;
return this.toString() === '';
}
function Sys$StringBuilder$toString(separator) {
/// <param name="separator" type="String" optional="true" mayBeNull="true"></param>
/// <returns type="String"></returns>
var e = Function._validateParams(arguments, [
{name: "separator", type: String, mayBeNull: true, optional: true}
]);
if (e) throw e;
separator = separator || '';
var parts = this._parts;
if (this._len !== parts.length) {
this._value = {};
this._len = parts.length;
}
var val = this._value;
if (typeof(val[separator]) === 'undefined') {
// Need to remove empty elements before joining in the separator case
if (separator !== '') {
for (var i = 0; i < parts.length;) {
if ((typeof(parts[i]) === 'undefined') ||
(parts[i] === '') || (parts[i] === null)) {
parts.splice(i, 1);
}
else {
i++;
}
}
}
val[separator] = this._parts.join(separator);
}
return val[separator];
}
Sys.StringBuilder.prototype = {
append: Sys$StringBuilder$append,
appendLine: Sys$StringBuilder$appendLine,
clear: Sys$StringBuilder$clear,
isEmpty: Sys$StringBuilder$isEmpty,
// separator may be null, to match behavior of ECMA Array.join(separator) and
// .NET String.Join(separator, value)
toString: Sys$StringBuilder$toString
}
Sys.StringBuilder.registerClass('Sys.StringBuilder');
var sb = new Sys.StringBuilder();
for (var i = 0; i < 5; i++)
{
sb.append(i);
sb.append(null);
}
alert(sb.toString('|'));
alert(sb.toString('|'));
var sb = new Sys.StringBuilder();
for (var i = 0; i < 5; i++)
{
sb.append(i);
}
sb.append(null);
alert(sb.toString('|')); // "0|1|2|3|4"
sb.append('abc');
alert(sb.toString('|')); // 依旧是"0|1|2|3|4"?
function Sys$StringBuilder$append(text) {
/// <param name="text" mayBeNull="true"></param>
var e = Function._validateParams(arguments, [
{name: "text", mayBeNull: true}
]);
if (e) throw e;
if (typeof(text) !== 'undefined' && text !== null && text !== '') {
this._parts[this._parts.length] = text.toString();
this._value = {};
}
}
function Sys$StringBuilder$toString(separator) {
/// <param name="separator" type="String" optional="true" mayBeNull="true"></param>
/// <returns type="String"></returns>
var e = Function._validateParams(arguments, [
{name: "separator", type: String, mayBeNull: true, optional: true}
]);
if (e) throw e;
separator = separator || '';
if (typeof(this._value[separator]) === 'undefined')
this._value[separator] = this._parts.join(separator);
return this._value[separator];
}
function Sys$StringBuilder$append(text) {
if (typeof(text) !== 'undefined' && text !== null && text !== '') {
this._parts[this._parts.length] = text.toString();
this._value = null;
}
}
function Sys$StringBuilder$toString(separator) {
separator = separator || '';
if (!this._value) this._value = {};
if (typeof(this._value[separator]) === 'undefined')
this._value[separator] = this._parts.join(separator);
return this._value[separator];
}
本文出自 “赵��” 博客,转载请与作者联系!