当前位置:网站首页>C# ?,?.,?? .....
C# ?,?.,?? .....
2022-07-08 01:01:00 【Poetry and distance】
?
Reprinted here
1. Nullable type modifier (?)
Reference types can use empty references to represent a value that does not exist , The value type is usually not represented as empty .
for example :string str=null; That's right. ,int i=null; The compiler will report an error .
To make the value type also nullable , You can use nullable types , Use the nullable type modifier "?“ To express , In the form of "T?” for example :int? Represents a nullable shape ,DateTime? Indicates a time that can be empty .
T? It's actually System.Nullable( Generic structure ) Abbreviated form , That means when you use T? The compiler will compile T? Translate it into System.Nullable In the form of .
for example :int?, When compiled, it's System.Nullable In the form of .
2. Three yuan ( Operator ) expression (?: )
for example :x?y:z Means if the expression x by true, Then return to y; If x by false, Then return to z, It's the omission if{}else{} In a simple form .
3. Empty merge operator (??)
Default values for defining nullable and reference types .
If the left operand of this operator is not null, Then this operator will return the left operand , Otherwise, return the right operand .
for example :a??b When a by null When you return to b,a Not for null When you return to a In itself . The empty merge operator is the right merge operator , That is to say, it is combined from right to left during operation . Such as ,“a??b??c” In the form of “a??(b??c)” Calculation .
4. NULL Check operators (?.)
For example, we want to get a Point Of the first point of the sequence X coordinate , The first feeling would say : int firstX = points.First().X; however , The old bird will tell you , Not here NULL Check , The correct version is like this :
int? firstX = null;
if (points != null)
{
var first = points.FirstOrDefault();
if (first != null)
firstX = first.X;
}
That's right... That's right , Code extraction becomes much harder to read . stay C# 6.0 in , Introduced a ?. Operator , The previous code can be changed to the following form :
int? firstX = points?.FirstOrDefault()?.X; We can also see its basic usage from this example : If the object is NULL, Then, the subsequent operation of getting members is not performed , Go straight back to NULL
It should be noted that , because "?.“ The operator can return NULL, When the returned member type is struct When it comes to type ,”?.“ and ”." The return value type of the operator is different .
Point p = new Point(3, 2);
Console.WriteLine(p.X.GetType() == typeof(int)); //true
Console.WriteLine(p?.X.GetType() == typeof(int?)); //true
5. "?[]" Operator :
int? first = customers?[0].Orders.Count();
If the array customers by null, Then the expression returns null; Otherwise, return the array access result .
6.??=
Only if the left operand evaluates to null when , To use operators ??= Assign the value of its right operand to the left . This is quite easy to use
边栏推荐
- 串口接收一包数据
- C # generics and performance comparison
- C# ?,?.,?? .....
- [OBS] the official configuration is use_ GPU_ Priority effect is true
- Langchao Yunxi distributed database tracing (II) -- source code analysis
- jemter分布式
- Marubeni official website applet configuration tutorial is coming (with detailed steps)
- They gathered at the 2022 ecug con just for "China's technological power"
- 攻防演练中沙盘推演的4个阶段
- Basic mode of service mesh
猜你喜欢

letcode43:字符串相乘

New library launched | cnopendata China Time-honored enterprise directory

Invalid V-for traversal element style
![[note] common combined filter circuit](/img/2f/a8c2ef0d76dd7a45b50a64a928a9c8.png)
[note] common combined filter circuit

AI遮天传 ML-回归分析入门

130. Surrounding area

FOFA-攻防挑战记录

Cve-2022-28346: Django SQL injection vulnerability

From starfish OS' continued deflationary consumption of SFO, the value of SFO in the long run

5G NR 系统消息
随机推荐
Four stages of sand table deduction in attack and defense drill
Cve-2022-28346: Django SQL injection vulnerability
Which securities company has a low, safe and reliable account opening commission
Is it safe to speculate in stocks on mobile phones?
大二级分类产品页权重低,不收录怎么办?
串口接收一包数据
13.模型的保存和载入
完整的模型训练套路
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
130. Zones environnantes
[reprint] solve the problem that CONDA installs pytorch too slowly
Reentrantlock fair lock source code Chapter 0
图像数据预处理
QT establish signal slots between different classes and transfer parameters
Where is the big data open source project, one-stop fully automated full life cycle operation and maintenance steward Chengying (background)?
Experience of autumn recruitment in 22 years
Deep dive kotlin synergy (XXII): flow treatment
133. 克隆图
Password recovery vulnerability of foreign public testing
jemter分布式