C#学习笔记
三元运算符为条件右联运算符:
a?b:c?d:e
计算结果:
a?b:(c?d:e)
ref 关键字:返回对结果的引用:
t,m为数组:
ref int v = (i < 5)? ref t[2]: ref m[2] ;
v = 5; //修改原数组中的值.
??如果左值为空,则返回右值,
??=如果左值为空,则右值赋给左值.同时返回左值.
?? ??=为右联运算符.
List<int> numbers = null;
int? a = null;
(numbers ??= new List<int>()).Add(5);
Console.WriteLine(string.Join(" ", numbers)); // output: 5
numbers.Add(a ??= 0);
Console.WriteLine(string.Join(" ", numbers)); // output: 5 0
Console.WriteLine(a); // output: 0
可以将throw 放在??中用于无值时触发异常.
public string Name { get => name; set => name = value ?? throw new ArgumentNullException(nameof(value), "Name cannot be null"); }
命名空间别名限定符 ::
using forwinforms = System.Drawing;
using forwpf = System.Windows;
public class Converters
{
public static forwpf::Point Convert(forwinforms::Point point) => new forwpf::Point(point.X, point.Y);
}