首页新闻找找看学习计划

如何通过条件判断两个变量的结果

0
悬赏园豆:50 [已解决问题] 解决于 2016-08-15 13:28

例如,参数,object objA,object objB,string relationType,

relationType值:大于,小于,等于,大于等于,小于等于,不等于

 

最简洁的代码实现C#.

 

bool Function(object objA,object objB,string relationType)

{

  //TODO

}

阿朱姐姐的主页 阿朱姐姐 | 初学一级 | 园豆:122
提问于:2016-08-12 21:20
< >
分享
最佳答案
0

一起来体验一下Roslyn的威力(install-package Microsoft.CodeAnalysis.CSharp.Scripting):

using Microsoft.CodeAnalysis.CSharp.Scripting;

static void Main(string[] args)
{
    Console.WriteLine(Compare(1, 2, "<").Result);
    Console.WriteLine(Compare(1, 2, ">").Result);
    Console.ReadKey();
}       

static async Task<bool> Compare(int x, int y, string relationType)
{
    return await CSharpScript.EvaluateAsync<bool>($"{x} {relationType} {y}");
}

参考:
Scripting API Samples
Introduction to Scripting with the .NET Compiler Platform (Roslyn)

收获园豆:50
dudu | 高人七级 |园豆:39088 | 2016-08-12 22:41

还有其他方法吗?动态运算符的方式怎么实现

阿朱姐姐 | 园豆:122 (初学一级) | 2016-08-15 13:27
其他回答(3)
0

如果是值类型,直接判断值大小关系就可以了,如果是对象的话,这就不太好做了,除非限定对象和大小规则。

seayxu | 园豆:5468 (大侠五级) | 2016-08-12 21:46
0

对比大小也是一个功能,一个功能就是一个接口.

所以你的object需要继承对比大小的接口.或者直接使用泛型约束来实现.

吴瑞祥 | 园豆:28770 (高人七级) | 2016-08-12 21:57
0

感觉这个方向错了吧?.net是可以自己实现Conmpare方法来自己定义大小的。。。

顾晓北 | 园豆:9878 (大侠五级) | 2016-08-15 09:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册