10

私はこの拡張メソッドを書きました:

public static class A
{
 public static IEnumerable<dynamic> AsDynamic<T>(this IEnumerable<T> f)
    {
        foreach (var element in f)
        {
                yield return (dynamic) element;
        }   
    }
}

そしてそれをテストしました:

List<int> l   = new List<int>(){1,2,3};
Console.WriteLine ( l.AsDynamic().GetType());

ただし、出力は次のとおりです。typeof (IEnumerable<Object>)

  • なぜそうではないのtypeof (IEnumerable<dynamic>) ですか?

  • どうすればそのようになりますか?

4

4 に答える 4

1

dynamicタイプじゃないから

Console.WriteLine(typeof(dynamic)); // error

dynamic は実行時に実際の型を解決するだけです

于 2013-01-01T14:04:18.627 に答える
0

Linq 拡張メソッドCast()を試してください。しかし、動的に機能するかどうかはわかりません。

于 2013-01-01T14:04:07.023 に答える