c# 运算符 '??'和“作为”

问题描述 投票:0回答:1

我看到了这段代码,但我不知道第二行中运算符的顺序。第二行的结果是什么?

Object obj = 1; 

String s = obj as String ?? "";

c# operators
1个回答
3
投票

C# 运算符优先级 表指出

as
(请参阅“关系和类型测试”行)运算符的优先级高于空合并运算符 (
??
),因此您的表达式将导致空字符串,因为
obj as String 
将计算为
null
,因此空合并运算符将返回右侧操作数,即
""

© www.soinside.com 2019 - 2024. All rights reserved.