internal static MethodReference GetEnumeratorMoveNextMethod(TypeReference enumeratorType, TypeReference elementType) { MethodReference enumeratorMoveNextMethod; var key = new DoubleTypeReferenceKey(enumeratorType, elementType); if (instance.enumeratorMoveNextMethods.TryGetValue(key, out enumeratorMoveNextMethod)) { return(enumeratorMoveNextMethod); } enumeratorMoveNextMethod = GetEnumeratorMoveNextMethodImpl(enumeratorType, elementType); instance.enumeratorMoveNextMethods.Add(key, enumeratorMoveNextMethod); return(enumeratorMoveNextMethod); }
internal static MethodReference GetGetEnumeratorMethod(TypeReference collectionType, TypeReference elementType) { MethodReference getEnumeratorMethod; var key = new DoubleTypeReferenceKey(collectionType, elementType); if (instance.getEnumeratorMethods.TryGetValue(key, out getEnumeratorMethod)) { return(getEnumeratorMethod); } getEnumeratorMethod = GetGetEnumeratorMethodImpl(collectionType, elementType); instance.getEnumeratorMethods.Add(key, getEnumeratorMethod); return(getEnumeratorMethod); }