Ler*_*ins 5 c# terminology operators ternary-operator
当你还是个孩子的时候,你有没有问过你的父母如何拼写一些东西,他们告诉你去查一下?我的第一印象总是,"好吧,如果可以查找它我不需要帮助拼写它".(是的,我知道语音学)
...无论如何,我只是看一些代码,我发现了一个例子:
txtbx.CharacterCasing = (checkbox.Checked) ? CharacterCasing.Upper : CharacterCasing.Normal;
Run Code Online (Sandbox Code Playgroud)
我可以弄清楚这个操作是做什么的,但显然,我不能谷歌?或者:我在搜索"c#运算符",LINQ,Lambda表达式等时无法找到它们.所以我不得不问这个愚蠢的问题,所以我可以开始阅读它.
这些运营商是什么?
Rex*_*x M 18
?:
是条件运算符,找出的最好方法是在这里问!
condition ? first_expression : second_expression;
Run Code Online (Sandbox Code Playgroud)
如果condition为true,则首先计算表达式并成为结果; 如果为false,则计算第二个表达式并成为结果.只评估了两个表达式中的一个.
当整个表达式相对较短时,它对于赋值的可读性非常有用:
string name = string.IsNullOrEmpty(user.Nickname) ? user.Fullname : user.Nickname
Run Code Online (Sandbox Code Playgroud)
比以下更容易,更快捷:
string name = user.Fullname;
if(!string.IsNullOrEmpty(user.Nickname))
{
name = user.Nickname;
}
Run Code Online (Sandbox Code Playgroud)
?
是内联if
声明.这意味着如果checkbox.Checked
是true
,那么CharacterCasing.Upper
将是表达式的值,否则CharacterCasing.Normal
将是.
它的工作原理如下:
type value = condition ? trueValue : falseValue;
归档时间: |
|
查看次数: |
379 次 |
最近记录: |