C# 占位符与语法糖

今天看到了类似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);

猜你喜欢

转载自www.cnblogs.com/xqher/p/13378267.html