差异

2010-08-31 76 views
0

就是在这两年条件差异

return Convert.ToInt32(cmd.ExecuteScalar()) == 1 ? true : false; 

return res =! 0 ? true:false; 

return Convert.ToInt32(cmd.ExecuteScalar()) > 0 ? true : false; 

正是在这三个条件差当我检查的信息中存在表[MySQL的]

+5

这是什么'MySQL'? – codaddict 2010-08-31 11:43:42

+0

你好 第二个有语法错误。正确吧 return res!= 0?真假; – PrateekSaluja 2010-08-31 12:08:41

+0

是的,我是手写第二个不复制,所以这是我的错。 – zinka 2010-08-31 14:24:31

回答

1

所有这三个版本有差异略微不同的逻辑:

  • 第一个版本返回true当值为1,否则false
  • 当值为0时,第二个版本返回false,否则为true
  • 第三个版本的值为正时返回true,否则为false

如果你的价值永远只能是01然后他们三个人都将是相同的功能,但是这不是通过代码本身,因为一个Int32保证有2^32个不同的国家。

1

那么,第一个和第三个表达式是相似的。但是,只有结果为1时,第一个返回true,只要结果不为零,第三个返回true。因此,如果sql命令返回2例如,结果将会不同。

表达式第二,我不知道为什么你想要与其他两个比较。

顺便说一下,三元运算符?:在所有三行中都是多余的。你也可以写

return Convert.ToInt32(cmd.ExecuteScalar()) == 1; 

return res =! 0; 

return Convert.ToInt32(cmd.ExecuteScalar()) > 0; 
5

你不需要在任何这些中指定? true : false。只需return Convert.ToInt32(cmd.ExecuteScalar()) == 1;(例如)就可以做到这一点。就数据库而言,没有区别,应用程序中的任何性能差异都可忽略不计,应予以忽略。剩下的只是比较结果等于1,不等于0或大于零的基本逻辑差异。

8

您正在使用三元运算符。

一速>return Convert.ToInt32(cmd.ExecuteScalar()) == 1 ? true : false;

真: - 当的Convert.ToInt32(cmd.ExecuteScalar())输出等于1 假:-if其不等于1

的2阶>return res =! 0 ? true:false;它具有语法错误

正确的是return res != 0 ? true:false;它有语法错误

真: - 当资源不等于0

题:-if水库等于0

3rd->return Convert.ToInt32(cmd.ExecuteScalar()) > 0 ? true : false;

真:的Convert.ToInt32(cmd.ExecuteScalar()) -if值大于0。

否则返回false。