亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? emptydictionary.cs

?? 詳細(xì)講述了數(shù)據(jù)庫編程
?? CS
字號(hào):
#region Copyright & License
//
// Copyright 2001-2005 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#endregion

using System;
using System.Collections;

namespace log4net.Util
{
	/// <summary>
	/// An always empty <see cref="IDictionary"/>.
	/// </summary>
	/// <remarks>
	/// <para>
	/// A singleton implementation of the <see cref="IDictionary"/>
	/// interface that always represents an empty collection.
	/// </para>
	/// </remarks>
	/// <author>Nicko Cadell</author>
	/// <author>Gert Driesen</author>
#if !NETCF
	[Serializable]
#endif
	public sealed class EmptyDictionary : IDictionary
	{
		#region Private Instance Constructors

		/// <summary>
		/// Initializes a new instance of the <see cref="EmptyDictionary" /> class. 
		/// </summary>
		/// <remarks>
		/// <para>
		/// Uses a private access modifier to enforce the singleton pattern.
		/// </para>
		/// </remarks>
		private EmptyDictionary()
		{
		}

		#endregion Private Instance Constructors
  
		#region Public Static Properties

		/// <summary>
		/// Gets the singleton instance of the <see cref="EmptyDictionary" />.
		/// </summary>
		/// <returns>The singleton instance of the <see cref="EmptyDictionary" />.</returns>
		/// <remarks>
		/// <para>
		/// Gets the singleton instance of the <see cref="EmptyDictionary" />.
		/// </para>
		/// </remarks>
		public static EmptyDictionary Instance
		{
			get { return s_instance; }
		}

		#endregion Public Static Properties

		#region Implementation of ICollection

		/// <summary>
		/// Copies the elements of the <see cref="ICollection"/> to an 
		/// <see cref="Array"/>, starting at a particular Array index.
		/// </summary>
		/// <param name="array">The one-dimensional <see cref="Array"/> 
		/// that is the destination of the elements copied from 
		/// <see cref="ICollection"/>. The Array must have zero-based 
		/// indexing.</param>
		/// <param name="index">The zero-based index in array at which 
		/// copying begins.</param>
		/// <remarks>
		/// <para>
		/// As the collection is empty no values are copied into the array.
		/// </para>
		/// </remarks>
		public void CopyTo(System.Array array, int index)
		{
			// copy nothing
		}

		/// <summary>
		/// Gets a value indicating if access to the <see cref="ICollection"/> is synchronized (thread-safe).
		/// </summary>
		/// <value>
		/// <b>true</b> if access to the <see cref="ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
		/// </value>
		/// <remarks>
		/// <para>
		/// For the <see cref="EmptyCollection"/> this property is always <b>true</b>.
		/// </para>
		/// </remarks>
		public bool IsSynchronized
		{
			get	{ return true; }
		}

		/// <summary>
		/// Gets the number of elements contained in the <see cref="ICollection"/>
		/// </summary>
		/// <value>
		/// The number of elements contained in the <see cref="ICollection"/>.
		/// </value>
		/// <remarks>
		/// <para>
		/// As the collection is empty the <see cref="Count"/> is always <c>0</c>.
		/// </para>
		/// </remarks>
		public int Count
		{
			get { return 0; }
		}

		/// <summary>
		/// Gets an object that can be used to synchronize access to the <see cref="ICollection"/>.
		/// </summary>
		/// <value>
		/// An object that can be used to synchronize access to the <see cref="ICollection"/>.
		/// </value>
		/// <remarks>
		/// <para>
		/// As the collection is empty and thread safe and synchronized this instance is also
		/// the <see cref="SyncRoot"/> object.
		/// </para>
		/// </remarks>
		public object SyncRoot
		{
			get { return this; }
		}

		#endregion Implementation of ICollection

		#region Implementation of IEnumerable

		/// <summary>
		/// Returns an enumerator that can iterate through a collection.
		/// </summary>
		/// <returns>
		/// An <see cref="IEnumerator"/> that can be used to 
		/// iterate through the collection.
		/// </returns>
		/// <remarks>
		/// <para>
		/// As the collection is empty a <see cref="NullEnumerator"/> is returned.
		/// </para>
		/// </remarks>
		IEnumerator IEnumerable.GetEnumerator()
		{
			return NullEnumerator.Instance;
		}

		#endregion Implementation of IEnumerable

		#region Implementation of IDictionary

		/// <summary>
		/// Adds an element with the provided key and value to the 
		/// <see cref="EmptyDictionary" />.
		/// </summary>
		/// <param name="key">The <see cref="object" /> to use as the key of the element to add.</param>
		/// <param name="value">The <see cref="object" /> to use as the value of the element to add.</param>
		/// <remarks>
		/// <para>
		/// As the collection is empty no new values can be added. A <see cref="InvalidOperationException"/>
		/// is thrown if this method is called.
		/// </para>
		/// </remarks>
		/// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
		public void Add(object key, object value)
		{
			throw new InvalidOperationException();
		}

		/// <summary>
		/// Removes all elements from the <see cref="EmptyDictionary" />.
		/// </summary>
		/// <remarks>
		/// <para>
		/// As the collection is empty no values can be removed. A <see cref="InvalidOperationException"/>
		/// is thrown if this method is called.
		/// </para>
		/// </remarks>
		/// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
		public void Clear()
		{
			throw new InvalidOperationException();
		}

		/// <summary>
		/// Determines whether the <see cref="EmptyDictionary" /> contains an element 
		/// with the specified key.
		/// </summary>
		/// <param name="key">The key to locate in the <see cref="EmptyDictionary" />.</param>
		/// <returns><c>false</c></returns>
		/// <remarks>
		/// <para>
		/// As the collection is empty the <see cref="Contains"/> method always returns <c>false</c>.
		/// </para>
		/// </remarks>
		public bool Contains(object key)
		{
			return false;
		}

		/// <summary>
		/// Returns an enumerator that can iterate through a collection.
		/// </summary>
		/// <returns>
		/// An <see cref="IEnumerator"/> that can be used to 
		/// iterate through the collection.
		/// </returns>
		/// <remarks>
		/// <para>
		/// As the collection is empty a <see cref="NullEnumerator"/> is returned.
		/// </para>
		/// </remarks>
		public IDictionaryEnumerator GetEnumerator()
		{
			return NullDictionaryEnumerator.Instance;
		}

		/// <summary>
		/// Removes the element with the specified key from the <see cref="EmptyDictionary" />.
		/// </summary>
		/// <param name="key">The key of the element to remove.</param>
		/// <remarks>
		/// <para>
		/// As the collection is empty no values can be removed. A <see cref="InvalidOperationException"/>
		/// is thrown if this method is called.
		/// </para>
		/// </remarks>
		/// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
		public void Remove(object key)
		{
			throw new InvalidOperationException();
		}

		/// <summary>
		/// Gets a value indicating whether the <see cref="EmptyDictionary" /> has a fixed size.
		/// </summary>
		/// <value><c>true</c></value>
		/// <remarks>
		/// <para>
		/// As the collection is empty <see cref="IsFixedSize"/> always returns <c>true</c>.
		/// </para>
		/// </remarks>
		public bool IsFixedSize
		{
			get { return true; }
		}

		/// <summary>
		/// Gets a value indicating whether the <see cref="EmptyDictionary" /> is read-only.
		/// </summary>
		/// <value><c>true</c></value>
		/// <remarks>
		/// <para>
		/// As the collection is empty <see cref="IsReadOnly"/> always returns <c>true</c>.
		/// </para>
		/// </remarks>
		public bool IsReadOnly
		{
			get	{ return true; }
		}

		/// <summary>
		/// Gets an <see cref="ICollection" /> containing the keys of the <see cref="EmptyDictionary" />.
		/// </summary>
		/// <value>An <see cref="ICollection" /> containing the keys of the <see cref="EmptyDictionary" />.</value>
		/// <remarks>
		/// <para>
		/// As the collection is empty a <see cref="EmptyCollection"/> is returned.
		/// </para>
		/// </remarks>
		public System.Collections.ICollection Keys
		{
			get { return EmptyCollection.Instance; }
		}

		/// <summary>
		/// Gets an <see cref="ICollection" /> containing the values of the <see cref="EmptyDictionary" />.
		/// </summary>
		/// <value>An <see cref="ICollection" /> containing the values of the <see cref="EmptyDictionary" />.</value>
		/// <remarks>
		/// <para>
		/// As the collection is empty a <see cref="EmptyCollection"/> is returned.
		/// </para>
		/// </remarks>
		public System.Collections.ICollection Values
		{
			get { return EmptyCollection.Instance; }
		}

		/// <summary>
		/// Gets or sets the element with the specified key.
		/// </summary>
		/// <param name="key">The key of the element to get or set.</param>
		/// <value><c>null</c></value>
		/// <remarks>
		/// <para>
		/// As the collection is empty no values can be looked up or stored. 
		/// If the index getter is called then <c>null</c> is returned.
		/// A <see cref="InvalidOperationException"/> is thrown if the setter is called.
		/// </para>
		/// </remarks>
		/// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
		public object this[object key]
		{
			get { return null; }
			set { throw new InvalidOperationException(); }
		}

		#endregion Implementation of IDictionary

		#region Private Static Fields

		/// <summary>
		/// The singleton instance of the empty dictionary.
		/// </summary>
		private readonly static EmptyDictionary s_instance = new EmptyDictionary();
  
		#endregion Private Static Fields
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区在线观看视频| 国产精品久久毛片| 成人动漫一区二区三区| 国产一区在线视频| 激情综合网天天干| 国模娜娜一区二区三区| 精品一区二区免费看| 麻豆国产一区二区| 久久精品72免费观看| 青青草精品视频| 精品一区二区三区蜜桃| 国模少妇一区二区三区| 国产成人aaaa| 91亚洲午夜精品久久久久久| 在线免费观看日韩欧美| 欧美亚洲图片小说| 91精品欧美久久久久久动漫| 日韩你懂的在线播放| 久久久美女艺术照精彩视频福利播放| 久久品道一品道久久精品| 国产精品大尺度| 亚洲福利视频三区| 九九**精品视频免费播放| 国产乱色国产精品免费视频| www.成人网.com| 欧美精品丝袜中出| 久久久久国产成人精品亚洲午夜| 亚洲欧美在线高清| 香蕉影视欧美成人| 国产一区欧美一区| 日本精品视频一区二区| 欧美成人一区二区三区| 亚洲国产电影在线观看| 同产精品九九九| 国产不卡视频在线观看| 在线免费不卡视频| 久久麻豆一区二区| 亚洲图片欧美视频| 国产.欧美.日韩| 欧美福利电影网| 国产精品视频在线看| 丝袜国产日韩另类美女| 成人妖精视频yjsp地址| 欧美一区二区三区视频在线| 17c精品麻豆一区二区免费| 日韩**一区毛片| 色婷婷综合久久久久中文一区二区| 日韩精品一区二区三区视频在线观看 | 久久先锋影音av鲁色资源网| 最近日韩中文字幕| 国产麻豆精品theporn| 欧美精品在线一区二区三区| 国产精品乱人伦中文| 老司机免费视频一区二区三区| 91视频在线看| 中文字幕欧美区| 久久99精品网久久| 欧美日韩成人综合| 亚洲精品视频在线观看免费| 欧美区在线观看| 国产精品中文字幕一区二区三区| 欧美亚洲日本国产| 中文字幕中文字幕在线一区 | 亚洲精品免费在线| 高清视频一区二区| 欧美精品一区二区三区高清aⅴ| 亚洲国产欧美在线| 日本久久一区二区| 亚洲中国最大av网站| 91美女片黄在线观看| 亚洲欧美一区二区在线观看| 不卡高清视频专区| 国产精品区一区二区三| 国产精品小仙女| 国产欧美日韩在线看| 国产高清成人在线| 中文字幕欧美激情一区| 成人丝袜高跟foot| 亚洲视频免费在线观看| 色婷婷国产精品| 8x福利精品第一导航| 久久亚洲精品小早川怜子| 狠狠色综合日日| 久久久久久亚洲综合影院红桃| 国产在线精品国自产拍免费| 久久人人97超碰com| 成人午夜精品在线| 亚洲三级久久久| 91视频免费看| 亚洲国产成人va在线观看天堂 | 亚洲主播在线观看| 欧美日韩激情一区二区| 欧美aaaaa成人免费观看视频| 日韩你懂的在线观看| 国产剧情一区二区| 日韩毛片在线免费观看| 欧美三级日韩在线| 精品一区二区综合| 亚洲欧洲性图库| 欧美人与z0zoxxxx视频| 看国产成人h片视频| 国产婷婷色一区二区三区在线| 国产91精品久久久久久久网曝门| 亚洲欧美激情视频在线观看一区二区三区| 亚洲欧美另类综合偷拍| 欧美日韩中文另类| 精品在线播放午夜| 日韩美女视频19| 日韩美女天天操| 91麻豆精品一区二区三区| 婷婷开心激情综合| 国产女人18水真多18精品一级做 | 91精品国产综合久久婷婷香蕉| 国产中文字幕一区| 亚洲色大成网站www久久九九| 欧美年轻男男videosbes| 国产一本一道久久香蕉| 亚洲一区二区三区不卡国产欧美| 久久色中文字幕| 欧美四级电影在线观看| 国产精品91xxx| 日本怡春院一区二区| 中文字幕制服丝袜成人av | 成人精品免费网站| 午夜欧美大尺度福利影院在线看| 国产日韩精品一区二区三区在线| 欧美视频一区在线| 成人av影视在线观看| 六月丁香综合在线视频| 亚洲小说欧美激情另类| 国产精品欧美一区喷水| 欧美一二三区在线| 欧美亚一区二区| eeuss鲁片一区二区三区| 免费在线一区观看| 午夜精品久久久久| 亚洲精品乱码久久久久久久久| 久久久天堂av| 欧美精品一区二| 日韩亚洲国产中文字幕欧美| 欧美性一区二区| 色域天天综合网| 成人av在线影院| 国产成人精品午夜视频免费| 精品亚洲aⅴ乱码一区二区三区| 午夜电影网一区| 一级日本不卡的影视| 亚洲日本在线a| 国产精品卡一卡二| 欧美高清一级片在线观看| 久久综合色婷婷| 精品国精品自拍自在线| 欧美一区二区高清| 日韩视频一区二区三区在线播放 | 国产精品456| 国产另类ts人妖一区二区| 久久精品国产精品亚洲综合| 美脚の诱脚舐め脚责91| 日本女人一区二区三区| 另类小说综合欧美亚洲| 九九精品一区二区| 九九精品一区二区| 成人性生交大片免费看在线播放| 成人免费视频网站在线观看| 丰满少妇久久久久久久| av在线播放一区二区三区| 一本在线高清不卡dvd| 91极品视觉盛宴| 久久成人久久鬼色| 日韩欧美国产午夜精品| 中文字幕的久久| 欧美日韩国产高清一区二区三区 | 亚洲一区免费视频| 香蕉加勒比综合久久| 国产精品久久久爽爽爽麻豆色哟哟 | 国产v日产∨综合v精品视频| 国产精品88888| 国产精品一区二区黑丝| 国产99久久久国产精品| bt欧美亚洲午夜电影天堂| 91成人免费在线| 精品国产乱码久久久久久久久 | 白白色 亚洲乱淫| 欧美性做爰猛烈叫床潮| 69av一区二区三区| 久久欧美中文字幕| 亚洲欧美国产高清| 日韩福利视频导航| 成人丝袜高跟foot| 9191成人精品久久| 国产日韩亚洲欧美综合| 亚洲精品欧美专区| 麻豆视频观看网址久久| 96av麻豆蜜桃一区二区| 日韩免费在线观看| 亚洲欧洲日韩一区二区三区| 日本特黄久久久高潮| www.亚洲精品| 精品久久人人做人人爽| 亚洲综合视频在线观看|