如何在表达式树C#中使用隐式转换?

LmTinyToon

我有简化的程序,它使用表达式:

public class Program
{
    public static IEnumerable<char> foo1()
    {
        //  For some reason I cannot change result type
        return new char[] { 's', '1' };
    }

    public static string foo2()
    {
        //  For some reason I cannot change result type
        return "s1";
    }

    static void Main()
    {
        Expression cond = Expression.Condition(Expression.Constant(true), 
            Expression.Call(typeof(Program).GetMethod("foo1")),
            Expression.Call(typeof(Program).GetMethod("foo2")));
    }
}

在执行过程中,我有以下错误

参数类型不匹配。

据我了解,c#不使用隐式类型转换。我怎么解决这个问题?

务实的

构建表达式时,不会为您添加隐式转换。您需要使用明确指出要应用转换操作符Expression.Convert

Expression cond = Expression.Condition(Expression.Constant(true),
    Expression.Call(typeof(Program).GetMethod("foo1")),
    Expression.Convert(Expression.Call(typeof(Program).GetMethod("foo2")), typeof(IEnumerable<char>)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在表达式树中使用隐式转换运算符

如何使用表达式树对数字类型应用隐式转换?

如何在C#/ .NET中使用LINQ表达式树调用lambda

如何在表达式树C#中使用运行时生成的类型

如何在C#中捕获表达式树

如何在c#中使用隐式

如何在C#.net中使用Linq表达式或AsEnumerable转换Foreach循环?

如何在C#中使用正则表达式匹配多行

如何在 C# 中使用正则表达式解析重复的名称-值对

如何在 C# 中使用正则表达式进行复杂的替换?

如何在C#中使用Lambda表达式进行嵌套查询

如何在C#中使用Lambda表达式处理矩阵LinkedList <Object>?

表达式从'UIView?'隐式强制转换 到任何-如何在源代码中查找行

如何在带有Join的EF Where()子句中使用表达式树?

如何在C#中为过滤器数据编写通用表达式树

如何在C#中通过表达式树构建集合过滤器

如何在C#中添加永远不会用于表达式树的参数?

如何在成员函数中使用隐式类型转换?

return 表达式到 bool 的隐式转换

如何在C#中的lambda表达式中使用foreach方法-在当前元素中如何使用

如何在我的正则表达式中在 C# 中使用未命名的正则表达式组?

C ++表达式在什么时候发生隐式转换?

c++ 在表达式中查找隐式类型转换

如何在类路径中使用嵌入式表达式

如何在C#中使用正则表达式将此.js文件解析为xml文件?

如何在 C# 中使用正则表达式从字符串中提取域名?

如何在C#中使用正则表达式从html中提取系统正常运行时间

如何在C#中使用正则表达式将多个模式与空格或字符匹配

如何在 C# 中使用正则表达式匹配汉字而不匹配日语假名?