今天看到了类似java中
System.out.printf("s=%s s=%.3s",s,s);
的语句.//此处java是输出字符串变量s 和s前三位
string valString = "Hello World."; var valSentence="Do you know the sentence that"; Console.WriteLine("{0}{1}",valSentence,valString);
发现C#中的占位符虽然容易混淆,但用起来还是比java好使多了
然后又康到了6.0以后的语法糖
($)(?.)(??)
($)
用$写起来就比上面那段引用符的使用看起来可读性高了
string valString = "Hello World."; Console.WriteLine($"Do you know the sentence that { valString}.");
实际上是C# 6.0对string.Format的改进,将字符串文本标识为内插字符串($)
新增语法糖:(?.)
这也是C#6.0的语法,这叫Null-Conditional Operator(null条件运算符)
我们经常需要判断对象是否为null(不判断呢就会报异常System.NullReferenceException之类的)
string result = null; string convert = null; result = "Test"; if (result != null) { convert = result; } //和这种 result = null; convert = ((result == null) ? convert : result); Console.WriteLine(convert);
现在可以采用这种写法
//可以改成 result为null输出null result不为null输出原文 Console.WriteLine(result?.ToString());
//null合并运算符 ?? //如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。 //声明一个可以为null的整形变量 //下一行代码等价于Nullable<int> a = null; int? num = null; Console.WriteLine(num??0);