📄 sscorlib.debug.js
字号:
Type.isClass = function Type$isClass(type) {
return (type.__class == true);
}
Type.isEnum = function Type$isEnum(type) {
return (type.__enum == true);
}
Type.isFlagsEnum = function Type$isFlagsEnum(type) {
return ((type.__enum == true) && (type.__flags == true));
}
Type.isInterface = function Type$isInterface(type) {
return (type.__interface == true);
}
Type.canCast = function Type$canCast(instance, type) {
return type.isInstance(instance);
}
Type.safeCast = function Type$safeCast(instance, type) {
if (type.isInstance(instance)) {
return instance;
}
return null;
}
Type.getInstanceType = function Type$getInstanceType(instance) {
var ctor = null;
// NOTE: We have to catch exceptions because the constructor
// cannot be looked up on native COM objects
try {
ctor = instance.constructor;
}
catch (ex) {
}
if (!ctor || !ctor.__typeName) {
ctor = Object;
}
return ctor;
}
Type.getType = function Type$getType(typeName) {
if (!typeName) {
return null;
}
if (!Type.__typeCache) {
Type.__typeCache = {};
}
var type = Type.__typeCache[typeName];
if (!type) {
type = eval(typeName);
Type.__typeCache[typeName] = type;
}
return type;
}
Type.parse = function Type$parse(typeName) {
return Type.getType(typeName);
}
///////////////////////////////////////////////////////////////////////////////
// Enum
var Enum = function() {
}
Enum.createClass('Enum');
Enum.parse = function Enum$parse(enumType, s) {
var values = enumType.prototype;
if (!enumType.__flags) {
for (var f in values) {
if (f === s) {
return values[f];
}
}
}
else {
var parts = s.split('|');
var value = 0;
var parsed = true;
for (var i = parts.length - 1; i >= 0; i--) {
var part = parts[i].trim();
var found = false;
for (var f in values) {
if (f === part) {
value |= values[f];
found = true;
break;
}
}
if (!found) {
parsed = false;
break;
}
}
if (parsed) {
return value;
}
}
throw 'Invalid Enumeration Value';
}
Enum.toString = function Enum$toString(enumType, value) {
var values = enumType.prototype;
if (!enumType.__flags || (value === 0)) {
for (var i in values) {
if (values[i] === value) {
return i;
}
}
throw 'Invalid Enumeration Value';
}
else {
var parts = [];
for (var i in values) {
if (values[i] & value) {
if (parts.length) {
parts.add(' | ');
}
parts.add(i);
}
}
if (!parts.length) {
throw 'Invalid Enumeration Value';
}
return parts.join('');
}
}
///////////////////////////////////////////////////////////////////////////////
// Delegate
var Delegate = function() {
}
Delegate.createClass('Delegate');
Delegate.Null = function() { }
Delegate._create = function Delegate$_create(targets) {
var delegate = function() {
if (targets.length == 2) {
return targets[1].apply(targets[0], arguments);
}
else {
for (var i = 0; i < targets.length; i += 2) {
targets[i + 1].apply(targets[i], arguments);
}
return null;
}
};
delegate.invoke = delegate;
delegate._targets = targets;
return delegate;
}
Delegate.create = function Delegate$create(object, method) {
if (!object) {
method.invoke = method;
return method;
}
return Delegate._create([object, method]);
}
Delegate.combine = function Delegate$combine(delegate1, delegate2) {
if (!delegate1) {
if (!delegate2._targets) {
return Delegate.create(null, delegate2);
}
return delegate2;
}
if (!delegate2) {
if (!delegate1._targets) {
return Delegate.create(null, delegate1);
}
return delegate1;
}
var targets1 = delegate1._targets ? delegate1._targets : [null, delegate1];
var targets2 = delegate2._targets ? delegate2._targets : [null, delegate2];
return Delegate._create(targets1.concat(targets2));
}
Delegate.remove = function Delegate$remove(delegate1, delegate2) {
if (!delegate1 || (delegate1 === delegate2)) {
return null;
}
if (!delegate2) {
return delegate1;
}
var targets = delegate1._targets;
var object = null;
var method;
if (delegate2._targets) {
object = delegate2._targets[0];
method = delegate2._targets[1];
}
else {
method = delegate2;
}
for (var i = 0; i < targets.length; i += 2) {
if ((targets[i] === object) && (targets[i + 1] === method)) {
if (targets.length == 2) {
return null;
}
targets.splice(i, 2);
return Delegate._create(targets);
}
}
return delegate1;
}
Delegate.createExport = function Delegate$createExport(delegate, multiUse) {
var name = '__' + (new Date()).valueOf();
Delegate[name] = function() {
if (!multiUse) {
Delegate.deleteExport(name);
}
delegate.apply(null, arguments);
};
return name;
}
Delegate.deleteExport = function Delegate$deleteExport(name) {
if (Delegate[name]) {
delete Delegate[name];
}
}
Delegate.clearExport = function Delegate$clearExport(name) {
if (Delegate[name]) {
Delegate[name] = Delegate.Null;
}
}
///////////////////////////////////////////////////////////////////////////////
// CultureInfo
var CultureInfo = function(name, numberFormat, dateFormat) {
this.name = name;
this.numberFormat = numberFormat;
this.dateFormat = dateFormat;
}
CultureInfo.createClass('CultureInfo');
CultureInfo.Neutral = new CultureInfo('en-US',
{
naNSymbol: 'NaN',
negativeSign: '-',
positiveSign: '+',
negativeInfinityText: '-Infinity',
positiveInfinityText: 'Infinity',
percentSymbol: '%',
percentGroupSizes: [3],
percentDecimalDigits: 2,
percentDecimalSeparator: '.',
percentGroupSeparator: ',',
percentPositivePattern: '{0} %',
percentNegativePattern: '-{0} %',
currencySymbol:'$',
currencyGroupSizes: [3],
currencyDecimalDigits: 2,
currencyDecimalSeparator: '.',
currencyGroupSeparator: ',',
currencyNegativePattern: '(${0})',
currencyPositivePattern: '${0}',
numberGroupSizes: [3],
numberDecimalDigits: 2,
numberDecimalSeparator: '.',
numberGroupSeparator: ','
},
{
amDesignator: 'AM',
pmDesignator: 'PM',
dateSeparator: '/',
timeSeparator: ':',
gmtDateTimePattern: 'ddd, dd MMM yyyy HH:mm:ss \'GMT\'',
universalDateTimePattern: 'yyyy-MM-dd HH:mm:ssZ',
sortableDateTimePattern: 'yyyy-MM-ddTHH:mm:ss',
dateTimePattern: 'dddd, MMMM dd, yyyy h:mm:ss tt',
longDatePattern: 'dddd, MMMM dd, yyyy',
shortDatePattern: 'M/d/yyyy',
longTimePattern: 'h:mm:ss tt',
shortTimePattern: 'h:mm tt',
firstDayOfWeek: 0,
dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
shortDayNames: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
minimizedDayNames: ['Su','Mo','Tu','We','Th','Fr','Sa'],
monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December',''],
shortMonthNames: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec','']
});
CultureInfo.Current = CultureInfo.Neutral;
///////////////////////////////////////////////////////////////////////////////
// IArray
var IArray = function() { };
IArray.prototype = {
getLength: null,
getItem: null
}
IArray.createInterface('IArray');
///////////////////////////////////////////////////////////////////////////////
// IEnumerator
var IEnumerator = function() { };
IEnumerator.prototype = {
get_current: null,
moveNext: null,
reset: null
}
IEnumerator.createInterface('IEnumerator');
///////////////////////////////////////////////////////////////////////////////
// IEnumerable
var IEnumerable = function() { };
IEnumerable.prototype = {
getEnumerator: null
}
IEnumerable.createInterface('IEnumerable');
///////////////////////////////////////////////////////////////////////////////
// ArrayEnumerator
var ArrayEnumerator = function ArrayEnumerator$(array) {
this._array = array;
this._index = -1;
}
ArrayEnumerator.prototype = {
get_current: function ArrayEnumerator$get_current() {
return this._array[this._index];
},
moveNext: function ArrayEnumerator$moveNext() {
this._index++;
return (this._index < this._array.length);
},
reset: function ArrayEnumerator$reset() {
this._index = -1;
}
}
ArrayEnumerator.createClass('ArrayEnumerator', null, IEnumerator);
///////////////////////////////////////////////////////////////////////////////
// Array Extensions
Array.__interfaces = [ IArray, IEnumerable ];
Array.prototype.getLength = function Array$getLength() {
return this.length;
}
Array.prototype.getItem = function Array$getItem(index) {
return this[index];
}
Array.prototype.getEnumerator = function Array$getEnumerator() {
return new ArrayEnumerator(this);
}
///////////////////////////////////////////////////////////////////////////////
// IDisposable
var IDisposable = function() { };
IDisposable.prototype = {
dispose: null
}
IDisposable.createInterface('IDisposable');
///////////////////////////////////////////////////////////////////////////////
// IServiceProvider
var IServiceProvider = function() { };
IServiceProvider.prototype = {
getService: null
}
IServiceProvider.createInterface('IServiceProvider');
///////////////////////////////////////////////////////////////////////////////
// IServiceContainer
var IServiceContainer = function() { };
IServiceContainer.prototype = {
registerService: null,
unregisterService: null
}
IServiceContainer.createInterface('IServiceContainer');
///////////////////////////////////////////////////////////////////////////////
// StringBuilder
var StringBuilder = function StringBuilder$(s) {
if ((s !== undefined) && (s !== null)) {
this._parts = [ s ];
}
else {
this._parts = [];
}
}
StringBuilder.prototype = {
get_isEmpty: function StringBuilder$get_isEmpty() {
return (this._parts.length == 0);
},
append: function StringBuilder$append(s) {
if ((s !== undefined) && (s !== null)) {
this._parts.add(s);
}
},
appendLine: function StringBuilder$appendLine(s) {
this.append(s);
this.append('\r\n');
},
clear: function StringBuilder$clear() {
this._parts.clear();
},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -