当前位置:网站首页>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
边栏推荐
- What is load balancing? How does DNS achieve load balancing?
- v-for遍历元素样式失效
- ReentrantLock 公平锁源码 第0篇
- Prediction of the victory or defeat of the League of heroes -- simple KFC Colonel
- 利用GPU训练网络模型
- Reentrantlock fair lock source code Chapter 0
- ABAP ALV LVC模板
- Basic mode of service mesh
- 股票开户免费办理佣金最低的券商,手机上开户安全吗
- 13.模型的保存和載入
猜你喜欢

Malware detection method based on convolutional neural network

Class head up rate detection based on face recognition

ThinkPHP kernel work order system source code commercial open source version multi user + multi customer service + SMS + email notification

7.正则化应用

Deep dive kotlin synergy (XXII): flow treatment

Jemter distributed

SDNU_ ACM_ ICPC_ 2022_ Summer_ Practice(1~2)

ReentrantLock 公平锁源码 第0篇

8道经典C语言指针笔试题解析

Redis, do you understand the list
随机推荐
130. 被圍繞的區域
From starfish OS' continued deflationary consumption of SFO, the value of SFO in the long run
Su embedded training - Day7
130. Zones environnantes
ThinkPHP kernel work order system source code commercial open source version multi user + multi customer service + SMS + email notification
Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布
新库上线 | 中国记者信息数据
韦东山第二期课程内容概要
8道经典C语言指针笔试题解析
14.绘制网络模型结构
130. 被围绕的区域
【GO记录】从零开始GO语言——用GO语言做一个示波器(一)GO语言基础
Summary of weidongshan phase II course content
Experience of autumn recruitment in 22 years
C# ?,?.,?? .....
The method of server defense against DDoS, Hangzhou advanced anti DDoS IP section 103.219.39 x
Application practice | the efficiency of the data warehouse system has been comprehensively improved! Data warehouse construction based on Apache Doris in Tongcheng digital Department
STL -- common function replication of string class
Semantic segmentation model base segmentation_ models_ Detailed introduction to pytorch
130. Surrounding area