如果 - 其他更快或?:

Amo*_*var -5 c# performance if-statement

哪个在c#中也更快

int a = 10;
bool _IsEven;
if(a%2 == 0)
{
   _IsEven = true;
}
else
{
   _IsEven = false;
}
Run Code Online (Sandbox Code Playgroud)

要么

int a = 10;
bool _IsEven = a%2 == 0 ? true : false;
Run Code Online (Sandbox Code Playgroud)

UPDATE

我知道在这里我可以优化我的代码

bool _IsEven = a%2 == 0;
Run Code Online (Sandbox Code Playgroud)

但我的问题不是关于代码优化,而是关于这两个语句的性能?

你能帮助我提高我的编码知识吗?

Jon*_*eet 6

那你的第二个代码甚至不会编译.但你可以写:

bool isEven = a % 2 == 0;
Run Code Online (Sandbox Code Playgroud)

要么

bool isEven = (a & 1) == 0;
Run Code Online (Sandbox Code Playgroud)

为什么要使用任何条件运算符或一个if说法?

一般来说,当你有类似的东西:

if (condition)
{
    x = true;
}
else
{
    x = false;
}
Run Code Online (Sandbox Code Playgroud)

要么

x = condition ? true : false;
Run Code Online (Sandbox Code Playgroud)

你可以写:

x = condition;
Run Code Online (Sandbox Code Playgroud)

我不会惊讶地看到C#编译器无论如何都要优化它,但我不会像可读性那样关注性能.