如何解决动态调用的错误通用重载?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (44)

我试图在C#中实现类似于Python的操作符的元组来使用dynamic

这里是示例:

using System;

public static class Test {
    static bool In<T>(T value, Tuple<T> a) => value.Equals(a.Item1);
    static bool In<T>(T value, Tuple<T, T> a) => value.Equals(a.Item1) || value.Equals(a.Item2);

    static void Main() {
        dynamic i = 0;
        In(i, (i, i));
    }
}

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException在System.Core.dll中发生未处理的类型异常最好的重载方法匹配Test.In<int>(int, System.Tuple<int>)有一些无效参数。

提问于
用户回答回答于

(i, i)实际上是一个实例System.ValueTuple<dynamic, dynamic>。我只是为了添加重载ValueTuple,不是一个dynamic相关的问题。

所属标签

可能回答问题的人

  • 嗨喽你好

    7 粉丝480 提问9 回答
  • uncle_light

    5 粉丝518 提问8 回答
  • 富有想象力的人

    3 粉丝0 提问7 回答
  • 无聊至极

    4 粉丝504 提问6 回答

扫码关注云+社区

领取腾讯云代金券