>백엔드 개발 >C++ >런타임에 동적 유형 매개 변수로 C#에서 일반 메소드를 어떻게 호출하려면?

런타임에 동적 유형 매개 변수로 C#에서 일반 메소드를 어떻게 호출하려면?

Susan Sarandon
Susan Sarandon원래의
2025-02-03 07:52:11903검색

C#일반 SCRANG 메소드의 동적 유형 매개 변수 How Can I Invoke Generic Methods in C# with Dynamic Type Parameters at Runtime?
를 실행합니다. C#에서 일반적인 메소드를 사용할 때, 때로는 유형 매개 변수를 컴파일 할 때 알 수 없으며 런타임에서 얻어야합니다. 이 기사에서는이 경우 일반 방법을 호출하는 모범 사례에 대해 설명합니다.

다음 코드 예제를 고려하십시오. 여기서 메소드는 런타임 변수에서 얻은 유형 매개 변수 를 호출하려고합니다. <strong> </strong> <the> 예제에 표시된대로 컴파일러가 컴파일하는 동안 유형 매개 변수를 유추 할 수 없으므로 를 직접 호출하십시오. 이 문제를 해결하려면 반사를 사용하여 방법을 얻은 다음 필요한 유형 매개 변수를 사용하여 "구성"해야합니다. <p> </p> 메소드 현재 유형에서 메소드를 검색하고 <p> 지정된 유형 매개 변수를 사용하여 일반 메소드 사양을 구성하십시오. 마지막으로 <is>는 생성자의 일반 방법을 호출하는 데 사용됩니다. <code>Example 정적 방법의 경우 myType가 GenericMethod

로 전달되었습니다. 이것은 일반적인 방법과 관련이 없지만 반사를 통해 정적 방법을 호출하는 방법 만 반영합니다. C# 4 이상의 버전에서 유형 추론이 가능하면 동적 호출을 사용 하여이 프로세스를 더욱 단순화 할 수 있지만 항상 그런 것은 아닙니다. 반사에 의해 제공되는 솔루션은 여전히 ​​동적 유형 매개 변수를 사용하여 일반 방법을 호출하는 신뢰할 수있는 방법입니다.
<code class="language-csharp">public class Sample
{
    public void Example(string typeName)
    {
        Type myType = FindType(typeName);
        GenericMethod<myType>(); // 这行代码无法编译通过
        StaticMethod<myType>(); // 这行代码也无法编译通过
    }

    public void GenericMethod<T>()
    {
        // ...
    }

    public static void StaticMethod<T>()
    {
        // ...
    }
}</code>

위 내용은 런타임에 동적 유형 매개 변수로 C#에서 일반 메소드를 어떻게 호출하려면?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.