首页 类库下载 C#类库 C#中的?有哪些用法

C#中的?有哪些用法

Apr 13, 2019 am 10:14 AM
c#

在C#中的?表示可空类型,它可以表示基础类型的所有T值以及另外的空值,??表示的是空合并运算符表示的是当操作数不为null时返回左侧值否则返回右侧等等

在C#中的?会因为个数的不同而有着不同的用法,比如?与??这两个运算符的含义就不相同。接下来将在文章中为大家详细介绍C#中的?具体有哪些用法,具有一定的参考价值,希望对大家有所帮助

C#中的?有哪些用法

【推荐课程:C#语言教程

?(可空类型)

可空类型是System.Nullable <T>结构的实例,可空类型可以表示基础类型的所有值T,以及另外的空值。基础类型T可以是任何不可为空的值类型。但是T不能是参考类型。

当用于表示基础类型的未定义值时,就可以使用可空类型。可空类型具有以下特征:

(1)在可空类型下,可以为变量分配空值,而无需根据引用类型创建可空类型。

(2)可空类型不支持嵌套的Nullable类型。

(3)可空类型不支持var类型。如果使用Nullable和var,那么就会出现编译错误

例:

// C# program to illustrate the 
// use of Nullable type 
using System; 
class GFG { 
    // 主方法
    static public void Main() 
    { 
        int ? a = null; 
        int ? b = 2345; 
        Console.WriteLine(a); 
        Console.WriteLine(b); 
    } 
}
登录后复制

输出结果:2345

??(空合并运算符)

在C#中??运算符称为null-coalescing运算符,即空合并运算符。含义是当操作数不为null,则返回左侧操作数; 否则它返回右侧操作数。如果在不使用??运算符的情况下将可空值类型分配给非可空值类型,则会生成编译时错误。如果使用强制转换,并且当前未定义可空值类型,InvalidOperationException则会引发异常。

例:

//声明a和b
int?a=null; 
int b;
b=a??2;//b的值为2
a=6;
b=a??8;//b的值为6
登录后复制

?:(三元运算符)

在C#中,有一个特殊的运算符叫做三元运算符,类似于if-else。三元运算符比较两个值并基于它返回一个值。三元运算符的语法是:

条件表达式?表达式1:表达式2;
登录后复制

它可以返回任何数据类型的值。

例:

using System;    
namespace Tutpoint  {      
class Program      
{          
public static void Compare(int a, int b)          
{              
string output = a > b ? "A 大于 B" : "B 大于 A";              
Console.WriteLine(output);          
}          
static void Main(string[] args)          
{             
 Program.Compare(66, 579);              
 Console.ReadKey();          
 }      
 }  }
登录后复制

结果输出为:B 大于 A

总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。

以上是C#中的?有哪些用法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用 C# 的活动目录 使用 C# 的活动目录 Sep 03, 2024 pm 03:33 PM

使用 C# 的 Active Directory 指南。在这里,我们讨论 Active Directory 在 C# 中的介绍和工作原理以及语法和示例。

C# 序列化 C# 序列化 Sep 03, 2024 pm 03:30 PM

C# 序列化指南。这里我们分别讨论C#序列化对象的介绍、步骤、工作原理和示例。

C# 中的随机数生成器 C# 中的随机数生成器 Sep 03, 2024 pm 03:34 PM

C# 随机数生成器指南。在这里,我们讨论随机数生成器的工作原理、伪随机数和安全数的概念。

C# 数据网格视图 C# 数据网格视图 Sep 03, 2024 pm 03:32 PM

C# 数据网格视图指南。在这里,我们讨论如何从 SQL 数据库或 Excel 文件加载和导出数据网格视图的示例。

C# 中的模式 C# 中的模式 Sep 03, 2024 pm 03:33 PM

C# 模式指南。在这里,我们讨论 C# 中模式的介绍和前 3 种类型,以及其示例和代码实现。

C# 中的阶乘 C# 中的阶乘 Sep 03, 2024 pm 03:34 PM

C# 阶乘指南。这里我们讨论 C# 中阶乘的介绍以及不同的示例和代码实现。

C# 中的质数 C# 中的质数 Sep 03, 2024 pm 03:35 PM

C# 素数指南。这里我们讨论c#中素数的介绍和示例以及代码实现。

c#多线程和异步的区别 c#多线程和异步的区别 Apr 03, 2025 pm 02:57 PM

多线程和异步的区别在于,多线程同时执行多个线程,而异步在不阻塞当前线程的情况下执行操作。多线程用于计算密集型任务,而异步用于用户交互操作。多线程的优势是提高计算性能,异步的优势是不阻塞 UI 线程。选择多线程还是异步取决于任务性质:计算密集型任务使用多线程,与外部资源交互且需要保持 UI 响应的任务使用异步。

See all articles