2011-11-25 65 views
3

我想知道这java代码在C#编译如何翻译java“?”在C#中的运算符?

n = (length > 0) ? Math.min(length, buffer.length) : buffer.length;//Java code 

它可以等同于在C#?

if(length >0) 
{ 
    n = Math.min(length, buffer.length); 
} 
else 
{ 
    n = buffer.length; 
} 
+7

你不必“翻译”什么! Java中代码的和平与C#('?'运算符)相同。 “长度”可能有问题。要在C#中获得数组长度,你应该写:'buffer.Length'。它是'Math.Min()'。 – Cipi

回答

18

C#有conditional operator为好。

在C#:

n = (length > 0) ? Math.Min(length, buffer.Length) : buffer.Length; 

唯一的差别将是方法名通常大写在.NET(PascalCase,代替camelCase)。

如果您打算使用C#,我建议您查看available operators

+0

我曾经称它为三元运算符。维基百科教我这是一个通用名称..你说得对。 +1。 – Gishu

+3

@Gishu - 三元操作符是一个有3个操作数的操作符。条件运算符是三元运算符的一个例子(唯一一个?)。许多运算符都是二元运算符('+','-'等),有些是一元运算符('++','--')。 – Oded

0

肯定的,但你也可以使用完全相同的表达在C#

1

C#也有:有条件的经营者,所以没有必要转换。

0

是的,你可以只是使用相同的syntax

0

没有需要,sytnax是完全一样的。

看看this,应该可以帮助你了:)

0
n = (length > 0) ? Math.Min(length, buffer.Length) : buffer.Length; 

三元运营商在C#中存在的唯一的区别是,Math.minMath.Minbuffer.lengthbuffer.Length

+0

它被称为条件运算符,三元运算符只有一个有3个操作数 –