CodeMethodReferenceExpression Constructor (CodeExpression, String, CodeTypeReference[])


Initializes a new instance of the CodeMethodReferenceExpression class using the specified target object, method name, and generic type arguments.

Namespace:   System.CodeDom
Assembly:  System (in System.dll)

public CodeMethodReferenceExpression(
	CodeExpression targetObject,
	string methodName,
	params CodeTypeReference[] typeParameters


Type: System.CodeDom.CodeExpression

A CodeExpression that indicates the object to target.

Type: System.String

The name of the method to call.

Type: System.CodeDom.CodeTypeReference[]

An array of CodeTypeReference values that specify the TypeArguments for this CodeMethodReferenceExpression.

The typeParameters parameter represents a collection of type references to be substituted for the type parameter references of the current generic method.

The following code example shows the use of this constructor.

using System;
using System.CodeDom;
using System.CodeDom.Compiler;

public class CodeGenExample
    static void Main()
        // Declare a new type called Class1.
        CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");

        // Declares a type constructor that calls a method.
        CodeConstructor constructor1 = new CodeConstructor();
        constructor1.Attributes = MemberAttributes.Public;
        class1.Members.Add( constructor1 );

        // Creates a method reference for dict.Init.
        CodeMethodReferenceExpression methodRef1 =
            new CodeMethodReferenceExpression(
                new CodeVariableReferenceExpression("dict"),
                new CodeTypeReference[] {
                    new CodeTypeReference("System.Decimal"),
                    new CodeTypeReference("System.Int32")});

        // Invokes the dict.Init method from the constructor.
        CodeMethodInvokeExpression invoke1 = new CodeMethodInvokeExpression( methodRef1, new CodeParameterDeclarationExpression[] {} );
        constructor1.Statements.Add( invoke1 );

        // Create a C# code provider
        CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");

        // Generate code and send the output to the console
        provider.GenerateCodeFromType(class1, Console.Out, new CodeGeneratorOptions());

// The C# code generator produces the following source code for the preceeding example code:
// public class Class1 {
//     public Class1() {
//         dict.Init<decimal, int>();
//     }
// }

.NET Framework
Available since 2.0
Return to top