| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- //-----------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace System.ServiceModel
- {
- using System;
- using System.Collections.Generic;
- class EmptyArray<T>
- {
- static T[] instance;
- EmptyArray()
- {
- }
- internal static T[] Instance
- {
- get
- {
- if (instance == null)
- instance = new T[0];
- return instance;
- }
- }
- internal static T[] Allocate(int n)
- {
- if (n == 0)
- return Instance;
- else
- return new T[n];
- }
- internal static T[] ToArray(IList<T> collection)
- {
- if (collection.Count == 0)
- {
- return EmptyArray<T>.Instance;
- }
- else
- {
- T[] array = new T[collection.Count];
- collection.CopyTo(array, 0);
- return array;
- }
- }
- internal static T[] ToArray(SynchronizedCollection<T> collection)
- {
- lock (collection.SyncRoot)
- {
- return EmptyArray<T>.ToArray((IList<T>)collection);
- }
- }
- }
- class EmptyArray
- {
- static object[] instance = new object[0];
- EmptyArray()
- {
- }
- internal static object[] Instance
- {
- get
- {
- return instance;
- }
- }
- internal static object[] Allocate(int n)
- {
- if (n == 0)
- return Instance;
- else
- return new object[n];
- }
- }
- }
|