Class Dynamic::DynamicMethodCall

A method call where the qualifier or one of the arguments is a dynamic expression, for example M(d) on line 8 in

class A {
  void M(int i) { }

  void M(string s) { }

  public static void CallM(bool b) {
    dynamic d = b ? 0 : (dynamic) "";
    M(d);
  }
}

Unlike an ordinary method call (MethodCall), the (static) target method may not be known at compile-time (as in the example above).

Direct supertypes

Indirect supertypes

Known direct subtypes

Predicates

toString

Gets a textual representation of this element.

Inherited predicates

fromLibrary

Holds if this element is from an assembly.

from Element
fromSource

Holds if this element is from source code.

from Element
getAChild

Gets a child of this element, if any.

from Element
getAChildExpr

Gets a child expression of this element, if any.

from ExprOrStmtParent
getAChildStmt

Gets a child statement of this element, if any.

from ExprOrStmtParent
getAControlFlowEntryNode

Gets a first control flow node executed within this element.

from ControlFlowElement
getAControlFlowExitNode

Gets a potential last control flow node executed within this element.

from ControlFlowElement
getAControlFlowNode

Gets a control flow node for this element. That is, a node in the control flow graph that corresponds to this element.

from ControlFlowElement
getALocation

Gets a location of this element, including sources and assemblies.

from Expr
getAReachableElement

Gets an element that is reachable from this element.

from ControlFlowElement
getARuntimeArgument

Gets an argument that corresponds to a parameter of a potential run-time target of this call.

from Call
getARuntimeTarget

Gets a potential run-time target of this call.

from Call
getAnArgument

Gets an argument to this call.

from Call
getArgument

Gets the ith argument to this call, if any.

from Call
getArgumentForName

Gets the argument to this call associated with the parameter with the given name, if any.

from Call
getArgumentForParameter

Gets the argument for this call associated with the parameter p, if any.

from Call
getChild

Gets the ith child of this element (zero-based).

from ExprOrStmtParent
getChildExpr

Gets the ith child expression of this element (zero-based).

from ExprOrStmtParent
getChildStmt

Gets the ith child statement of this element (zero-based).

from ExprOrStmtParent
getEnclosingCallable

Gets the enclosing callable of this expression, if any.

from Expr
getEnclosingStmt

Gets the enclosing statement of this expression, if any.

from Expr
getExplicitArgumentName

Gets the explicit parameter name used to pass this expression as an argument for, if any. For example, if this expression is 0 in M(second: 1, first: 0) then the result is "first".

from Expr
getFile

Gets the file containing this element.

from Element
getIndex

Gets the index of this element among its parent’s other children (zero-based).

from Element
getLanguage

Gets the “language” of this program element, as defined by the extension of the filename. For example, C# has language “cs”, and Visual Basic has language “vb”.

from Element
getLateBoundTargetName

Gets the name of the target that is late bound, if any.

from LateBindableExpr
getLocation

Gets the location of this element, if any. Where an element has multiple locations (for example a source file and an assembly), gets only the source location.

from Element
getNumberOfArguments

Gets the number of arguments of this call.

from Call
getNumberOfChildren

Gets the number of children of this element.

from Element
getNumberOfRuntimeArguments

Gets the number of arguments that correspond to a parameter of a potential run-time target of this call.

from Call
getParentfrom Expr
getQualifiedDeclaration

Gets the declaration targeted by this expression, for example a method or a field.

from MethodCall
getQualifier

Gets the qualifier of this expression, if any.

from QualifiableExpr
getRawArgument

Gets the ith “raw” argument to this call, if any. For instance methods, argument 0 is the qualifier.

from MethodCall
getRuntimeArgument

Gets the argument that corresponds to the ith parameter of a potential run-time target of this call.

from Call
getRuntimeArgumentForName

Gets the argument that corresponds to a parameter named name of a potential run-time target of this call.

from Call
getRuntimeArgumentForParameter

Gets the argument that corresponds to parameter p of a potential run-time target of this call.

from Call
getTarget

Gets the static (compile-time) target of this call. For example, the static target of x.M() on line 9 is A.M in

from MethodCall
getType

Gets the type of this expression.

from Expr
getValue

Gets the value of this expression, if any

from Expr
hasImplicitThisQualifier

Holds if this expression has an implicit this qualifier.

from QualifiableExpr
hasNoArguments

Holds if this call has no arguments.

from Call
hasNoRuntimeArguments

Holds if this call has no arguments that correspond to a parameter of a potential (run-time) target of this call.

from Call
hasQualifier

Holds if this expression is qualified.

from QualifiableExpr
hasThisQualifier

Holds if this call has an implicit or explicit this qualifier.

from QualifiableExpr
hasValue

Holds if this expression has a value.

from Expr
isConditional

Holds if this expression has a conditional qualifier ?.

from QualifiableExpr
isImplicit

Holds if this expression is generated by the compiler and does not appear explicitly in the source code.

from Expr
isLateBound

Holds if this expression is late bound.

from LateBindableExpr
isLive

Holds if this element is live, that is this element can be reached from the entry point of its enclosing callable.

from ControlFlowElement
reachableFrom

Holds if the current element is reachable from src.

from ControlFlowElement
stripCasts

Gets an expression that is the result of stripping (recursively) all implicit and explicit casts from this expression, if any. For example, the result is reader if this expression is either (IDisposable)reader or reader as IDisposable.

from Expr
stripImplicitCasts

Gets an expression that is the result of stripping (recursively) all implicit casts from this expression, if any.

from Expr
targetIsLocalInstance

Holds if the target of this expression is a local instance. That is, either the (implicit) qualifier is this or the qualifier is base.

from QualifiableExpr
targetIsOverridableOrImplementable

Holds if the target of this expression can be overridden or implemented.

from QualifiableExpr
targetIsThisInstance

Holds if this expression is equivalent to a this-qualified version of this expression

from QualifiableExpr
toStringWithTypes

Gets the full textual representation of this element, including type information.

from Element