Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory.CreateFieldInfo C# (CSharp) Method

CreateFieldInfo() public method

public CreateFieldInfo ( Microsoft.CSharp.RuntimeBinder.Semantics.FieldSymbol field, AggregateType fieldType ) : Microsoft.CSharp.RuntimeBinder.Semantics.EXPRFIELDINFO
field Microsoft.CSharp.RuntimeBinder.Semantics.FieldSymbol
fieldType AggregateType
return Microsoft.CSharp.RuntimeBinder.Semantics.EXPRFIELDINFO
        public EXPRFIELDINFO CreateFieldInfo(FieldSymbol field, AggregateType fieldType)
        {
            Debug.Assert(field != null);
            Debug.Assert(fieldType != null);
            EXPRFIELDINFO rval = new EXPRFIELDINFO();
            rval.kind = ExpressionKind.EK_FIELDINFO;
            rval.type = GetTypes().GetOptPredefAgg(PredefinedType.PT_FIELDINFO).getThisType();
            rval.flags = 0;
            rval.Init(field, fieldType);
            return rval;
        }

Usage Example

示例#1
0
        protected override Expr VisitFIELD(ExprField expr)
        {
            Debug.Assert(expr != null);
            Expr pObject;

            if (expr.OptionalObject == null)
            {
                pObject = ExprFactory.CreateNull();
            }
            else
            {
                pObject = Visit(expr.OptionalObject);
            }
            ExprFieldInfo pFieldInfo = ExprFactory.CreateFieldInfo(expr.FieldWithType.Field(), expr.FieldWithType.GetType());

            return(GenerateCall(PREDEFMETH.PM_EXPRESSION_FIELD, pObject, pFieldInfo));
        }