1. 程式人生 > 實用技巧 >C# 佔位符與語法糖

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);