ExprCast
namespace Microsoft.CSharp.RuntimeBinder.Semantics
{
internal sealed class ExprCast : ExprWithType
{
public Expr Argument { get; set; }
public bool IsBoxingCast => (base.Flags & (EXPRFLAG.EXF_CTOR | EXPRFLAG.EXF_UNREALIZEDGOTO)) != (EXPRFLAG)0;
public override object Object {
get {
Expr argument = Argument;
ExprCast exprCast;
while ((exprCast = (argument as ExprCast)) != null) {
argument = exprCast.Argument;
}
return argument.Object;
}
}
public ExprCast(EXPRFLAG flags, CType type, Expr argument)
: base(ExpressionKind.Cast, type)
{
Argument = argument;
base.Flags = flags;
}
}
}