当前位置:编程学习 > C#/ASP.NET >>

string a = "1"== null ? null:"2" 这是一种什么赋值方式

string a = "1"== null ? null:"2" 这是一种什么赋值方式

请为我讲解下 --------------------编程问答-------------------- ("1"== null) ? null:"2"

a?b:c

如果a为真,返回b,否则返回c --------------------编程问答-------------------- a=2 --------------------编程问答-------------------- 后面是一个三元表达式
然后把这个三元表达式的值赋给a

具体的就是 "1"==null为真则赋null,否则赋"2" --------------------编程问答-------------------- 优先级+三元表达式 --------------------编程问答-------------------- 三目运算 --------------------编程问答-------------------- true返回第一个,false返回第二个 --------------------编程问答-------------------- 那这种写法呢

string a= "b" == null; --------------------编程问答-------------------- 这个是个  三目运算

表达式 a  ?  xxxx  :wwww

表达式a 为true  也就是过成立  结果是xxxx。
否则 结果是 wwww --------------------编程问答-------------------- 所以结果 是2
-------------------------- 下面会出错的
string a= "b" == null; --------------------编程问答-------------------- string a = ("1"== null) ? null:"2" --------------------编程问答-------------------- 除非将"1"换成变量,不然这是一种愚蠢至极的声明方式 --------------------编程问答-------------------- 叫"问号表达式" --------------------编程问答-------------------- 相当于string a="2";
"1"==null成立吗? --------------------编程问答-------------------- 这是三元式,改写一下容易理解:
string a = ("1"== null) ? null:"2" ;
也就先判段"1"是否等于null,
如果1等于null,则a=null,否则a等于2,
也就是说这个a永远等于2,因为1永远不可能等于null,

写成if形式:
string a;
if("1"==null)
  a=null;
else
  a="2";


--------------------编程问答-------------------- 三元运算符...例子很蠢,恒等于"2"... --------------------编程问答-------------------- 这个是三目操作符 --------------------编程问答--------------------
"三眼神童"运算符 --------------------编程问答--------------------
引用 15 楼 vrhero 的回复:
三元运算符...例子很蠢,恒等于"2"...

仔细一看,果然很.. --------------------编程问答-------------------- 三元式,将其转换成IF ELSE就好理解了,LS的有说....
--------------------编程问答-------------------- a=2 --------------------编程问答-------------------- 相当于三元运算符 --------------------编程问答-------------------- 飘过 --------------------编程问答-------------------- 例子太简单了。 --------------------编程问答-------------------- ("1"== null) ? null:"2" 

a?b:c 

如果a为真,返回b,否则返回c --------------------编程问答-------------------- 咱们都是从很蠢的例子开始学习的. --------------------编程问答--------------------
引用 1 楼 alifriend 的回复:
("1"== null) ? null:"2"

a?b:c

如果a为真,返回b,否则返回c
up --------------------编程问答-------------------- 三元运算符 --------------------编程问答-------------------- 基础知识,三元运算符

条件?结果1:结果2

如果条件为true,那么返回结果1,否则就返回结果2

所以你代码

string a = "1"== null ? null:"2" 

意思是:如果"1"== null 为true,那么就返回null,否则返回"2",再把返回值赋给变量a --------------------编程问答--------------------
引用 14 楼 koukoujiayi 的回复:
这是三元式,改写一下容易理解:
string a = ("1"== null) ? null:"2" ;
也就先判段"1"是否等于null,
如果1等于null,则a=null,否则a等于2,
也就是说这个a永远等于2,因为1永远不可能等于null,

写成if形式:
string a;
if("1"==null)
  a=null;
else
  a="2";


很清晰……
--------------------编程问答--------------------
引用 1 楼 alifriend 的回复:
("1"== null) ? null:"2"

a?b:c

如果a为真,返回b,否则返回c

up --------------------编程问答-------------------- 三目操作符 --------------------编程问答-------------------- "1"怎么会是null呢? --------------------编程问答--------------------
引用楼主 lilei9633 的回复:
string a = "1"== null ? null:"2" 这是一种什么赋值方式
请为我讲解下

好象是:
三目运算符号,在C中优化代码生成的;当今托管代码已经失去原有的意义了。
--------------------编程问答-------------------- 高手真多 --------------------编程问答-------------------- 看着晕 --------------------编程问答-------------------- string a = "1"== null ? null:"2"
==string a = ("1"== null ? null:"2")

这个表达式运行的话,a="2" --------------------编程问答-------------------- 三元运算符 很多人回复了,就不详细解释了 --------------------编程问答-------------------- 是吗?是就满足左边的,不是就是右边的。 --------------------编程问答-------------------- 学习
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,