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