我只是从http://referencesource.microsoft.com/netframework.aspx下载.Net框架源代码 这是Net_4.msi。但是在我安装之后,我找不到IEnumerator代码文件。 我只是想知道为什么Net_4.msi不包含所有.Net类。
更新: 感谢您的回复并对此感到抱歉。
我不是要求IEnumerator的定义。
我认为“Net_4.msi”应该包括所有.Net类/接口的源代码文件。
例如在文件夹Net_4\Source\ndp\clr\src\BCL\System\Collections
中,您可以找到IList.cs,ICollection.cs,IDictionary.cs和IEnumerable.cs。
这4个文件分别是IList,ICollection,IDictionary和IEnumerable源代码文件。
请参阅this image。
但我找不到文件:IEnumerator.cs。我只是想知道IEnumerator.cs在哪里。为什么IEnumerator.cs不包含在“Net_4.msi”中?
答案 0 :(得分:5)
正如loki所指出的那样,IEnumerator<T>
是一个接口,而不是具体的类,所以没有实现。但是,您可以寻找一个an example of how to implement the interface for your custom type(s).
要直接回答您的问题,它在mscorlib.dll中定义,这是整个.NET 4.0文件:
#region Assembly mscorlib.dll, v4.0.30319
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll
#endregion
using System;
using System.Collections;
namespace System.Collections.Generic
{
// Summary:
// Supports a simple iteration over a generic collection.
//
// Type parameters:
// T:
// The type of objects to enumerate.This type parameter is covariant. That is,
// you can use either the type you specified or any type that is more derived.
// For more information about covariance and contravariance, see Covariance
// and Contravariance in Generics.
public interface IEnumerator<out T> : IDisposable, IEnumerator
{
// Summary:
// Gets the element in the collection at the current position of the enumerator.
//
// Returns:
// The element in the collection at the current position of the enumerator.
T Current { get; }
}
}
答案 1 :(得分:2)
IEnumerator不是一个类,它是接口。没有代码。