C++ C# getMethod : Call Method by Name

2017.07.01 19:10

졸리운_곰 조회 수:258

C# getMethod : Call Method by Name

 

 

GetMethod references methods with only a string name. With it we call a method whose name equals this string. This involves the System.Reflection namespace and the MethodInfo type found there.
Example. Before we begin, please notice the System.Reflection namespace. Reflection here refers to how C# programs can look inside themselves and then act upon their metadata programmatically.

Next:We want to call the Inform static method by using the string "Inform" and we want to call it twice with different parameters.

Static Method

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

C# program that uses GetMethod

using System;
using System.Reflection;

static class Methods
{
    public static void Inform(string parameter)
    {
        Console.WriteLine("Inform:parameter={0}", parameter);
    }
}

class Program
{
    static void Main()
    {
        // Name of the method we want to call.
        string name = "Inform";

        // Call it with each of these parameters.
        string[] parameters = { "Sam", "Perls" };

        // Get MethodInfo.
        Type type = typeof(Methods);
        MethodInfo info = type.GetMethod(name);

        // Loop over parameters.
        foreach (string parameter in parameters)
        {
            info.Invoke(null, new object[] { parameter });
        }
    }
}

Output

Inform:parameter=Sam
Inform:parameter=Perls


In this example, the expression typeof(Methods) references the Methods class and returns Type pointer. We next call the instance method GetMethod on the type instance. This returns a MethodInfo instance or null if no method was located.Type
Next, in the foreach loop, we repeatedly call Invoke. The first argument to Invoke is null. This is because the target method is static and has no instance expression. The second argument is wrapped in an object array.ForeachObject Array

Note:You must do this even if there is only one required parameter. It is not optional.

MethodInfo Invoke
Summary. It is possible to call methods by their names in the C# language. Using reflection, you can create interesting abilities in your programs, such as query languages that can reference arbitrary methods in the metadata.

Tip:This is best for situations where performance is not critical. It is ideal for less frequently used code.

 

[출처] https://www.dotnetperls.com/getmethod

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
44 Machine Learning with ML.Net and C#/VB.Net file 졸리운_곰 2018.08.16 997
43 Build Simple AI .NET Library - Part 6 - ML Algorithms file 졸리운_곰 2018.03.26 1102
42 Build Simple AI .NET Library - Part 5 - Artificial Neural Networks file 졸리운_곰 2018.03.26 1046
41 Build Simple AI .NET Library - Part 4 - Beyond Perceptron file 졸리운_곰 2018.03.26 293
40 Build Simple AI .NET Library - Part 3 - Perceptron file 졸리운_곰 2018.03.26 238
39 Build Simple AI .NET Library - Part 2 - Machine Learning Introduction file 졸리운_곰 2018.03.26 309
38 Build Simple AI .NET Library - Part 1 - Basics First file 졸리운_곰 2018.03.26 293
37 텍스트 파일을 한 번에 한 줄씩 읽기(Visual C#) 졸리운_곰 2017.08.30 354
36 마우스 클릭 매크로 (C# 버전) file 졸리운_곰 2017.07.30 1401
35 Assembly Manipulation and C# / VB.NET Code Injection file 졸리운_곰 2017.07.01 419
34 Snoop is the open source WPF spying utility file 졸리운_곰 2017.07.01 263
33 Hawkeye - The .Net Runtime Object Editor Hawkeye - The .Net Runtime Object Editor file 졸리운_곰 2017.07.01 151
32 .NET Object Spy and InvokeRemote file 졸리운_곰 2017.07.01 227
31 C#에서의 리플렉션(Reflection) 졸리운_곰 2017.07.01 340
30 Loading an assembly using Reflection and invoking static methods from it file 졸리운_곰 2017.07.01 154
29 => 연산자(C# 참조) file 졸리운_곰 2017.06.25 191
28 대리자 사용(C# 프로그래밍 가이드) 졸리운_곰 2017.06.25 248
27 Using C# reflection to call a constructor 졸리운_곰 2017.06.25 175
26 Reflection introduction 졸리운_곰 2017.06.25 147
25 C# - Interfaces 졸리운_곰 2017.06.25 168
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED