Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Field() [3/3]

static MemberExpression System.Linq.Expressions.Expression< TDelegate >.Field ( Expression< TDelegate >? expression,
FieldInfo field )
inlinestaticinherited

Definition at line 3658 of file Expression.cs.

3659 {
3661 if (field.IsStatic)
3662 {
3663 if (expression != null)
3664 {
3665 throw Error.OnlyStaticFieldsHaveNullInstance("expression");
3666 }
3667 }
3668 else
3669 {
3670 if (expression == null)
3671 {
3672 throw Error.OnlyStaticFieldsHaveNullInstance("field");
3673 }
3675 if (!TypeUtils.AreReferenceAssignable(field.DeclaringType, expression.Type))
3676 {
3677 throw Error.FieldInfoNotDefinedForType(field.DeclaringType, field.Name, expression.Type);
3678 }
3679 }
3680 return MemberExpression.Make(expression, field);
3681 }
static void RequiresNotNull(object value, string paramName)
static void RequiresCanRead(Expression expression, string paramName)
static bool AreReferenceAssignable(Type dest, Type src)
Definition TypeUtils.cs:673

References System.Dynamic.Utils.TypeUtils.AreReferenceAssignable(), System.Linq.Expressions.Error.FieldInfoNotDefinedForType(), System.Linq.Expressions.MemberExpression.Make(), System.Linq.Expressions.Error.OnlyStaticFieldsHaveNullInstance(), System.Dynamic.Utils.ExpressionUtils.RequiresCanRead(), and System.Dynamic.Utils.ContractUtils.RequiresNotNull().

Referenced by System.Runtime.CompilerServices.CallSite< T >.CreateCustomUpdateDelegate(), System.Xml.Serialization.ReflectionXmlSerializationReaderHelper.GetSetMemberValueDelegateWithType< TObj, TParam >(), System.Linq.Expressions.Utils.GetStrongBoxValueField(), and System.Linq.Expressions.DynamicExpression.Reduce().