.NET 帮助

C# 空合并(开发人员如何使用)

介绍

空合并运算符??会对右操作数进行求值,并在其为非空引用时返回结果; 否则,将返回左侧操作数的值。 如果左操作数评估为非可空值类型,则空条件运算符(??)不会对其右侧操作数进行评估。 空合并赋值运算符??=将其右操作数的值赋给左操作数,仅当左操作数求值为可空类型值时。 如果左侧的操作数计算结果为非 null 值,则 null 合并赋值运算符(??=)不会计算其右侧的操作数。 空凝聚运算符类似于三元运算符。

确实,在C#中,空合并运算符(??)是一个二元运算符。 作用于两个操作数的运算符称为二进制运算符。 使用空凝聚运算符时,需要两个操作数,运算符会对每个操作数进行评估,以确定结果。 下面我们来看看 C# 中 null coalescing 和 null conditional 操作符的用法。

如何使用 C#空凝聚值类型

  1. 创建一个新的 C# 项目。

  2. 确保安装了相应的版本。

  3. 使用空合运算符??

  4. 根据要求检查值或对象引用类型。

  5. 运行代码。

C# 和 num 中的空凝聚;

C#中的空值处理由空合并运算符(??)默认提供,该概念用于管理可能导致空值的可空类型或表达式。

语法

以下是空凝聚运算符的语法:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel

expression1:该表达式可能会产生一个空值。

expression2:如果 expression1 为空,则使用默认值或替代表达式。

结果:保存凝聚操作结果的变量。

在处理可空类型时,空凝聚运算符提供了一种分配默认值的简洁方法,这是其精简代码和有效处理空数据的主要目标。

优势

  • 简洁:处理空检查,无需复杂的条件语句或三元运算符。
  • 通过明确说明如果返回 null,将提供默认值,提高代码的可读性。

    在使用空凝聚运算符之前,确保比较的表达式类型匹配或兼容至关重要。

    虽然操作符很有用,但过度使用可能会使代码更难理解。 在提高代码清晰度时,应慎用。

    在处理可空类型或需要默认值的场景时,C# 中的空合并运算符(??)是管理空值的有效工具,可能有助于编写更简洁且易于理解的代码。

    对? 具备以下与类型相关的素质:

结果类型推理

如以下代码所示,如果表达式 1 和表达式 2 的类型相同,则空凝聚运算符的结果类型与这些操作数相同。

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)
$vbLabelText   $csharpLabel

类型兼容性

如果表达式 1 和表达式 2 具有不同的类型,但其中一个可以隐式转换为另一个,那么结果类型就是两个表达式可以隐式转换的类型。

double? value= null;
int result = (int)(value ?? 5.5);
double? value= null;
int result = (int)(value ?? 5.5);
Imports System

Dim value? As Double= Nothing
Dim result As Integer = CInt(Math.Truncate(If(value, 5.5)))
$vbLabelText   $csharpLabel

类型推广

如果表达式 1 和 2 的类型无法隐式转换,则将按照 C# 的类型推广规则选择结果类型。

int? value= null;
long result = value ?? 100L;
int? value= null;
long result = value ?? 100L;
Dim value? As Integer= Nothing
Dim result As Long = If(value, 100L)
$vbLabelText   $csharpLabel

因此,所涉及操作数的类型以及C#类型转换规则决定了保存空合并运算符(??)结果的变量或表达式的类型。 为了保证在使用空凝聚运算符时正确处理类型和值,必须考虑到兼容性和可能的类型转换。

铁中的凝聚PDF

安装 IronPDF

要安装 IronPdf 库,请在软件包管理器中输入以下相同的代码:

Install-Package IronPdf

C# 空合并(开发人员如何使用):图 1 - 安装 IronPDF

或者,您也可以使用 NuGet 软件包管理器搜索软件包 "IronPdf"。 您可以从与 IronPdf 相关联的所有 NuGet 软件包列表中选择并下载所需的软件包。

C# Null 合并(开发人员如何使用):图 2 - NuGet 包管理器

使用空值聚合创建 PDF

一个名为 IronPdf 的 C# 库用于创建和处理 PDF 文档。 该库提供了一些处理 PDF 的功能,如格式化、文本处理和图片管理。 "空凝聚 "既不是 IronPDF 独有的方法,也不是 IronPDF 独有的功能; 在翻译过程中,我们必须考虑到".NET "和 "Python "这两种语言的特点,而不是库的特定操作。

然而,如果您在C#代码中使用IronPDF或任何其他库,您可以利用C#语言提供的空合并运算符(??)。

例如,在处理 IronPDF 对象、可归零值类型或可能返回 null 的属性时,要处理 null 情况或提供默认值,可以使用 null-coalescing 操作符。

下面的示例展示了 IronPDF 如何使用空凝聚运算符:

using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            int? x = null;
            var outputstr = $@"square of <b>{x}</b> is <b>{ Math.Sqrt(x??30)}</b>";
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
            pdfcreate.SaveAs("demo.pdf");
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            int? x = null;
            var outputstr = $@"square of <b>{x}</b> is <b>{ Math.Sqrt(x??30)}</b>";
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
            pdfcreate.SaveAs("demo.pdf");
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages
Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)
			pdfcreate.SaveAs("demo.pdf")
			Console.ReadKey()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

请记住,IronPDF(或任何库)不提供用于管理空值条件运算符的特殊功能或方法; 在翻译过程中,我们必须注意到,C# 语言中的空条件运算符的使用是基于 C# 语言处理空条件运算符的一般特性和概念。 要了解有关IronPDF的功能和特性的更多信息,请访问IronPDF演示

输出:

C# 空合并(如何为开发者工作):图 3 - 前面示例的输出

结论

总之,C# 的空合并运算符 (??) 是一个有用的特性,使在表达式和赋值中处理空值变得更简单且更高效。 该操作符为开发人员提供了一种明确的方法来处理值可能为空的情况,从而简化了代码。 这使开发人员能够轻松指定默认值或执行替代逻辑。 它的适应性使代码更加精简和有效,简化了空测试并提高了可读性。

IronPDF 提供永久许可证、升级选项、一年的软件维护和三十天退款保证,所有这些都包含在 $749 Lite 套餐中。 在带水印的试用期内,用户有三十天的时间在实际应用设置中对产品进行评估。 点击提供的IronPDF 许可了解有关 IronPDF 的费用、许可和试用版的更多信息。 要了解更多关于Iron Software产品的信息,请查看Iron Software网站

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
Datatables .NET(开发者如何使用)
下一步 >
Hangfire .NET Core(它如何为开发人员工作)