/// <summary> /// 接受指定的访问方式(访问者模式) /// </summary> /// <param name="visitor"></param> public void Accept(IDiscuzVisitor <T> visitor) { if (visitor == null) { throw new ArgumentNullException("访问器为空"); } System.Collections.Generic.LinkedList <T> .Enumerator enumerator = this.GetEnumerator(); while (enumerator.MoveNext()) { visitor.Visit(enumerator.Current); if (visitor.HasDone) { return; } } }
static StackObject *MoveNext_1(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 1); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method); System.Collections.Generic.LinkedList <ILRuntime.Runtime.Intepreter.ILTypeInstance> .Enumerator instance_of_this_method = (System.Collections.Generic.LinkedList <ILRuntime.Runtime.Intepreter.ILTypeInstance> .Enumerator) typeof(System.Collections.Generic.LinkedList <ILRuntime.Runtime.Intepreter.ILTypeInstance> .Enumerator).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); var result_of_this_method = instance_of_this_method.MoveNext(); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method); __intp.Free(ptr_of_this_method); __ret->ObjectType = ObjectTypes.Integer; __ret->Value = result_of_this_method ? 1 : 0; return(__ret + 1); }
/// <summary> /// 获取下一个结点。 /// </summary> /// <returns>返回下一个结点。</returns> public bool MoveNext() { return(m_Enumerator.MoveNext()); }