C# 运算符 '??'和 'as'
c# operators '??' and 'as'
我看到了这段代码,但我不知道第二行中运算符的顺序。第二行的结果是什么?
Object obj = 1;
String s = obj as String ?? "";
C# operator precedence table 声明 as
(参见“关系和类型测试”行)运算符的优先级高于空合并运算符(??
),所以你的表达式将导致空字符串,因为 obj as String
将计算为 null
因此空合并运算符将 return 右侧操作数,即 ""
.
我看到了这段代码,但我不知道第二行中运算符的顺序。第二行的结果是什么?
Object obj = 1;
String s = obj as String ?? "";
C# operator precedence table 声明 as
(参见“关系和类型测试”行)运算符的优先级高于空合并运算符(??
),所以你的表达式将导致空字符串,因为 obj as String
将计算为 null
因此空合并运算符将 return 右侧操作数,即 ""
.