Inazuma.PetitClr.Core.PetitClrInterpreter.StFld C# (CSharp) Метод

StFld() приватный Метод

private StFld ( ) : void
Результат void
        private void StFld()
        {
            var inst = _instructions[_instructionPtr];
            var fld = ((FieldDefinition) inst.Operand).Resolve();

            var value = _opStack.Pop();
            var target = _opStack.Pop(); // addrCit
            var fieldDesc = target.MethodTable.EEClass.LookupFieldDesc(fld);

            if (target.Type == CorInfoType.Class)
            {
                if (value.Type == CorInfoType.Class)
                {
                    // TODO: 
                    target.FieldInstances[fieldDesc.Offset] = value;
                }
                else if (value.Type == CorInfoType.ValueClass)
                {
                    target.FieldInstances[fieldDesc.Offset] = value.GetInstanceOrCopiedValue();
                    throw ThrowHelper.NotImplementedYet;
                }
                else
                {
                    target.FieldInstances[fieldDesc.Offset] = value.GetInstanceOrCopiedValue(); // copy
                }
            }
            else
            {
                throw ThrowHelper.NotImplementedYet;
            }
        }