Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# int CompareTo方法和普通If条件之间的差异?_C#_Asp.net_Performance_Comparison - Fatal编程技术网

C# int CompareTo方法和普通If条件之间的差异?

C# int CompareTo方法和普通If条件之间的差异?,c#,asp.net,performance,comparison,C#,Asp.net,Performance,Comparison,我尝试了使用两种类型比较两个整数值 类型1: int val1 = 1; int val2 = 2; var returnValue = val1.CompareTo(val2);//-1 for First int is smaller. varreturnValue = val2.CompareTo(val1);// 1 for First int is larger varreturnValue = val1.CompareTo(val1);//0 for Ints are equa

我尝试了使用两种类型比较两个整数值

类型1:

 int val1 = 1;
 int val2 = 2;

var returnValue = val1.CompareTo(val2);//-1 for First int is smaller.
varreturnValue = val2.CompareTo(val1);// 1 for First int is larger
varreturnValue = val1.CompareTo(val1);//0 for Ints are equal.

If(varreturnValue ==1)
 {
    //Success
 }
 else
 {
   //Failure 
 }
 int val1 = 1;
 int val2 = 2;

if (val1 < val2)
{
    //return -1 //Failure
}
else if (val2 < val1)
{
    //return 2 //Success 
}
else
{
    // return 0  // Same 
}
类型2:

 int val1 = 1;
 int val2 = 2;

var returnValue = val1.CompareTo(val2);//-1 for First int is smaller.
varreturnValue = val2.CompareTo(val1);// 1 for First int is larger
varreturnValue = val1.CompareTo(val1);//0 for Ints are equal.

If(varreturnValue ==1)
 {
    //Success
 }
 else
 {
   //Failure 
 }
 int val1 = 1;
 int val2 = 2;

if (val1 < val2)
{
    //return -1 //Failure
}
else if (val2 < val1)
{
    //return 2 //Success 
}
else
{
    // return 0  // Same 
}
int-val1=1;
int-val2=2;
if(val1
  • 这些方法有什么区别

    • 哪一种(类型)更适合标准编码

    • 这些类型的性能有什么不同吗


当我浏览int的
CompareTo()
方法(使用ReSharper)的内部时,我看到:

public int CompareTo(int value)
{
  if (this < value)
    return -1;
  return this > value ? 1 : 0;
}

当我浏览int的
CompareTo()
方法(使用ReSharper)的内部时,我看到了以下内容:

public int CompareTo(int value)
{
  if (this < value)
    return -1;
  return this > value ? 1 : 0;
}

当我浏览int的
CompareTo()
方法(使用ReSharper)的内部时,我看到了以下内容:

public int CompareTo(int value)
{
  if (this < value)
    return -1;
  return this > value ? 1 : 0;
}

当我浏览int的
CompareTo()
方法(使用ReSharper)的内部时,我看到了以下内容:

public int CompareTo(int value)
{
  if (this < value)
    return -1;
  return this > value ? 1 : 0;
}

在我看来,
CompareTo
方法在需要将检查相等性的逻辑与使用比较结果的另一个逻辑分离时是很好的。在您的示例中,当您执行以下代码时:

int val1 = 1;
 int val2 = 2;

if (val1 < val2)
{
    //return -1 //Failure
}
else if (val2 < val1)
{
    //return 2 //Success 
}
else
{
    // return 0  // Same 
}
在这种情况下,比较结果表示为枚举,可以在函数之间传递

另一种情况是,您甚至可以通过连接将比较结果序列化为数值(-1,0,1)(例如,ajax调用的返回值)


像这样的数字比较可能没什么用,但正如帕特里克·韦克在评论中指出的那样
CompareTo
可以通过接口使用,该接口可以由其他数据类型(包括您的自定义数据类型)实现。

在我看来,
CompareTo
方法在需要将检查相等性的逻辑和使用比较结果的另一个逻辑分离时是很好的。在您的示例中,当您执行以下代码时:

int val1 = 1;
 int val2 = 2;

if (val1 < val2)
{
    //return -1 //Failure
}
else if (val2 < val1)
{
    //return 2 //Success 
}
else
{
    // return 0  // Same 
}
在这种情况下,比较结果表示为枚举,可以在函数之间传递

另一种情况是,您甚至可以通过连接将比较结果序列化为数值(-1,0,1)(例如,ajax调用的返回值)


像这样的数字比较可能没什么用,但正如帕特里克·韦克在评论中指出的那样
CompareTo
可以通过接口使用,该接口可以由其他数据类型(包括您的自定义数据类型)实现。

在我看来,
CompareTo
方法在需要将检查相等性的逻辑和使用比较结果的另一个逻辑分离时是很好的。在您的示例中,当您执行以下代码时:

int val1 = 1;
 int val2 = 2;

if (val1 < val2)
{
    //return -1 //Failure
}
else if (val2 < val1)
{
    //return 2 //Success 
}
else
{
    // return 0  // Same 
}
在这种情况下,比较结果表示为枚举,可以在函数之间传递

另一种情况是,您甚至可以通过连接将比较结果序列化为数值(-1,0,1)(例如,ajax调用的返回值)


像这样的数字比较可能没什么用,但正如帕特里克·韦克在评论中指出的那样
CompareTo
可以通过接口使用,该接口可以由其他数据类型(包括您的自定义数据类型)实现。

在我看来,
CompareTo
方法在需要将检查相等性的逻辑和使用比较结果的另一个逻辑分离时是很好的。在您的示例中,当您执行以下代码时:

int val1 = 1;
 int val2 = 2;

if (val1 < val2)
{
    //return -1 //Failure
}
else if (val2 < val1)
{
    //return 2 //Success 
}
else
{
    // return 0  // Same 
}
在这种情况下,比较结果表示为枚举,可以在函数之间传递

另一种情况是,您甚至可以通过连接将比较结果序列化为数值(-1,0,1)(例如,ajax调用的返回值)


像这样的数字比较可能没什么用,但正如帕特里克·韦克在评论中指出的那样<代码>比较可通过接口使用,接口可由其他数据类型(包括您的自定义数据类型)实现。

对于您的用例,没有真正的区别。但是,
CompareTo
可以通过接口使用,
IComparable
,当您有一个受约束的泛型类型并且想要进行比较时,该接口非常有用(提示:有序集合,例如二叉树等)<代码>
就不起作用了。对于您的用例来说,没有真正的区别。但是,
CompareTo
可以通过接口使用,
IComparable
,当您有一个受约束的泛型类型并且想要进行比较时,该接口非常有用(提示:有序集合,例如二叉树等)<代码>就不起作用了。对于您的用例来说,没有真正的区别。但是,
CompareTo
可以通过接口使用,
IComparable
,当您有一个受约束的泛型类型并且想要进行比较时,该接口非常有用(提示:有序集合,例如二叉树等)<代码>就不起作用了。对于您的用例来说,没有真正的区别。但是,
CompareTo
可以通过接口使用,
IComparable
,当您有一个受约束的泛型类型并且想要进行比较时,该接口非常有用(提示:有序集合,例如二叉树等)<代码>将不起作用。但这里我们需要另一个条件作为comparto方法的返回值。好吗?我是说。如果我们使用comparto方法,那么我们需要检查-1或1或0的条件,以查找大值和小值。+1对于所显示的方法,很好!谢谢你的建议;)但在这里,我们需要另一个条件作为comparto方法的返回值。好吗?我是说。如果我们使用comparto方法,那么我们需要检查-1或1或0的条件来查找big和l