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)
但我的问题不是关于代码优化,而是关于这两个语句的性能?
你能帮助我提高我的编码知识吗?
那你的第二个代码甚至不会编译.但你可以写:
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#编译器无论如何都要优化它,但我不会像可读性那样关注性能.