簡體   English   中英

如何在通用方法調用(C#)中使用Type變量

[英]How to use a Type variable in a generic method call (C#)

我有一個傳遞給方法的Type變量t ,我想在調用IQueryable.Join時將其用作通用參數,如下所示

queryResult.Join<Type1, Type2, t, Type3>( items, outerSelector, innerSelector, ( a, b) => a);

顯然不起作用。 我應該怎么做才能t ,以達到我故意的? 謝謝!

基本上,您必須使用反射來調用該方法:

  • 使用Type.GetMethod獲取通用方法模板
  • 調用MakeGenericMethod傳入您的4個類型參數
  • 調用傳入常規參數的方法

這很痛苦:(

我不確定您的“類型變量”的詳細信息,但是如果變量已經是該方法的通用參數,則可以將其用作Join的通用參數:

public void MyMethod<T>()
{
    // do some stuff to get queryResult, then
    queryResult.Join<Type1, Type2, T, Type3>(items, outerSelector, innerSelector, (a, b) => something);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM