Class 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).

Import path

import csharp

Direct supertypes

Indirect supertypes

Known direct subtypes

    Predicates

    toString

    Gets a textual representation of this element.

    Inherited predicates

    controlsBlock

    Holds if basic block controlled is controlled by this control flow element with conditional value s. That is, controlled can only be reached from the callable entry point by going via the s edge out of some basic block ending with this element.

    from ControlFlowElement
    controlsElement

    Holds if control flow element controlled is controlled by this control flow element with conditional value s. That is, controlled can only be reached from the callable entry point by going via the s edge out of this element.

    from ControlFlowElement
    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
    getAnnotatedType

    Gets the annotated type of this expression.

    from Expr
    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
    getAssembly

    Gets the assembly that this element was compiled into.

    from ControlFlowElement
    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. Where an element has locations in source and assemblies, choose the source location. If there are multiple assembly locations, choose only one.

    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
    hasMaybeNullFlowState

    Holds if the nullable flow state of this expression may be null.

    from Expr
    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
    hasNotNullFlowState

    Holds if the nullable flow state of this expression is not null.

    from Expr
    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