跳至页脚内容
.NET 帮助

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

空合并运算符??在左操作数为null引用时,计算右操作数并返回其结果。 否则,它返回其左侧操作数的值。 如果左侧操作数评估为不可为空的值类型,则空合并运算符(??)不会评估其右侧操作数。 赋值运算符??=是一个空合并赋值运算符,当左操作数的计算结果为可空类型值时,将其右操作数的值赋给左操作数。 如果左侧的操作数评估为非空值,则空合并赋值运算符(??=)不会评估其右侧操作数。 空合并运算符类似于三元运算符。

在 C# 中,空合并运算符(??)是二元运算符。 作用于两个操作数的运算符称为二元运算符。 使用空合并运算符时,需要两个操作数,运算符评估每个操作数以确定结果。 现在我们将在 C# 中看到空合并和空条件运算符的用法。

如何使用 C# 空合并值类型

  1. 创建一个新的 C# 项目。
  2. 确保安装了适当的版本。
  3. 使用空合并运算符 ??
  4. 根据需要检查值或对象引用类型。
  5. 运行代码。

Null Coalescing in C#

C# 中的空值由 空合并运算符(??)默认处理,这是用于处理可能导致空值的可为空类型或表达式的联合理念。

语法

以下是空合并运算符的语法:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
$vbLabelText   $csharpLabel
  • expression1: 该表达式可能产生一个空值。
  • expression2: 如果expression1为null,这是要使用的默认值或替代表达式。
  • result: 保存合并操作结果的变量。

空合并运算符提供了一种简洁的方法来为可为空的类型分配默认值,其主要目的是简化代码并有效处理空数据。

好处

  • 简洁性: 处理空检查而不需要复杂的条件语句或三元运算符。
  • 代码可读性: 通过明确表示如果返回null,将提供默认值得到改善。

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

虽然有用,但运算符使用过度可能使代码难以理解。 谨慎使用它,当它有助于提高代码清晰度时才使用。

使用空合并运算符(??)进行可为空类型或需要默认值的场景处理时,是一种有效的工具,可以帮助编写更简洁易懂的代码。

空合并运算符 ?? 具有以下与类型相关的特性:

结果类型推断

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

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
$vbLabelText   $csharpLabel

类型兼容性

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

double? value = null;
int result = (int)(value ?? 5.5);
double? value = null;
int result = (int)(value ?? 5.5);
$vbLabelText   $csharpLabel

类型提升

如果表达式 1 和表达式 2 的类型不能隐式转换,那么将根据 C# 的类型提升规则选择结果类型。

int? value = null;
long result = value ?? 100L;
int? value = null;
long result = value ?? 100L;
$vbLabelText   $csharpLabel

因此,参与的操作数的类型和 C# 类型转换规则决定了持有空合并运算符(??)结果的变量或表达式类型。 为了确保使用空合并运算符时正确处理类型和值,考虑兼容性和可能的类型转换是至关重要的。

IronPDF 中的空合并

安装IronPDF

要安装 IronPDF 库,请在包管理器中输入以下代码:

Install-Package IronPdf

C# Null Coalescing(它对开发者的作用原理):图1 - 安装IronPDF

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

C# Null Coalescing(它对开发者的作用原理):图2 - NuGet软件包管理器

使用空合并创建 PDF

IronPDF 是一个用于创建和处理 PDF 文档的 C# 库。 该库提供了用于处理 PDF 的功能,例如格式化、文本处理和图像管理。 "空合并"不是 IronPDF 独有的方法或功能; 而是一种语言功能,而不是库特定的操作。

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

例如,在处理可能返回 null 的 IronPDF 对象、可空值类型或属性时,您可以使用空合并运算符来处理空情况或提供默认值。

以下示例显示了如何将空合并运算符与 IronPDF 一起使用:

using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
$vbLabelText   $csharpLabel

请记住,IronPDF(或任何库)不提供用于管理空条件运算符的特殊功能或方法; 而是基于通用 C# 语言功能和概念来使用空合并运算符来处理空条件运算符。 要了解有关 IronPDF 的功能和功能的更多信息,请访问 IronPDF 演示

输出:

C# Null Coalescing(它对开发者的作用原理):图3 - 前述示例输出

结论

总之,C# 的空合并运算符(??)是一个有用的特性,使处理表达式和赋值中的空值变得更容易和更高效。 该运算符通过为开发人员提供一种处理可能为空的值的方案的清晰方式来简化代码。 这使开发人员能够轻松地指定默认值或执行替代逻辑。 其适应性使代码更加简化和高效,简化了空测试并提高了可读性。

IronPDF提供永久许可证、升级选项、一年的软件维护和三十天退款保证,全部包含在$799 Lite软件包中。 用户有三十天时间在带水印的试用期内在真实应用环境中评估产品。 点击提供的 IronPDF 许可证 了解有关 IronPDF 成本、许可证和试用版的更多信息。 要了解更多关于 Iron Software 产品的信息,请查看 Iron Software 网站

常见问题解答

空合并运算符如何提高 C# 代码的可读性?

C# 中的空合并运算符 `??` 通过简化空检查和在遇到可空类型时提供默认值的简洁方法来提高代码的可读性。

C# 中空合并赋值运算符的目的是什么?

空合并赋值运算符 `??=` 仅在左操作数为空时,将其右操作数的值赋给左操作数,从而在处理可空类型时实现简化代码。

您能否提供一个在 C# PDF 应用程序中使用空合并运算符的示例?

在使用 IronPDF 的 C# PDF 应用程序中,您可以使用空合并运算符分配默认文件名,如果用户未指定:string pdfName = userInputFileName ?? "default.pdf";

使用空合并运算符时有哪些常见的陷阱?

一个常见的陷阱是未确保操作数之间的类型兼容性,这可能导致类型转换错误。在使用空合并运算符时,确保两个操作数的类型兼容至关重要。

空合并运算符如何与 C# 中的类型兼容性相关?

空合并运算符要求两个操作数类型兼容。如果不兼容,C# 会应用类型提升规则来确定结果类型,如果不小心管理,这可能导致意外行为。

空合并运算符对处理可空类型的开发人员有什么好处?

空合并运算符的好处在于,它允许开发人员通过提供默认值来高效处理可空类型,减少了冗长条件逻辑的需求。

开发人员如何使用空合并运算符来管理 C# 代码库中的空值?

开发人员可以在 C# 代码库中使用空合并运算符,在可能为空时赋值默认值,确保应用程序无空引用异常情况下继续平稳运行。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me