[.NET internals] вопрос к гуру
От: Аноним  
Дата: 11.01.14 06:23
Оценка:
Имеется созданный компилятором класс, реализация IEnumerator

  Скрытый текст
.class auto ansi sealed nested private beforefieldinit <GetEnumerator>d__2
    extends [mscorlib]System.Object
    implements [mscorlib]System.Collections.Generic.IEnumerator`1<class DebugProject.SomeClass>, [mscorlib]System.Collections.IEnumerator, [mscorlib]System.IDisposable
{
    .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
    .method public hidebysig specialname rtspecialname instance void .ctor(int32 <>1__state) cil managed
    {
        .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor()
    }

    .method private hidebysig newslot virtual final instance bool MoveNext() cil managed
    {
        .override [mscorlib]System.Collections.IEnumerator::MoveNext
    }

    .method private hidebysig newslot virtual final instance void System.Collections.IEnumerator.Reset() cil managed
    {
        .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor()
        .override [mscorlib]System.Collections.IEnumerator::Reset
    }

    .method private hidebysig newslot virtual final instance void System.IDisposable.Dispose() cil managed
    {
        .override [mscorlib]System.IDisposable::Dispose
    }


    .property instance class DebugProject.SomeClass System.Collections.Generic.IEnumerator<DebugProject.SomeClass>.Current
    {
        .get instance class DebugProject.SomeClass DebugProject.TestClass/<GetEnumerator>d__2::System.Collections.Generic.IEnumerator<DebugProject.SomeClass>.get_Current()
    }

    .property instance object System.Collections.IEnumerator.Current
    {
        .get instance object DebugProject.TestClass/<GetEnumerator>d__2::System.Collections.IEnumerator.get_Current()
    }


    .field private int32 <>1__state

    .field private class DebugProject.SomeClass <>2__current

    .field public class DebugProject.TestClass <>4__this

    .field public class DebugProject.SomeClass <>g__initLocal0

    .field public class DebugProject.SomeClass <>g__initLocal1

}


Почему у всех методов к имени добавлено имя интерфейса, а у MoveNext — нет?
internals ildasm
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.