相关疑难解决方法(0)

什么是null!声明的意思?

我最近看到了以下代码:

public class Person
{
    //line 1
    public string FirstName { get; }
    //line 2
    public string LastName { get; } = null!;
    //assign null is possible
    public string? MiddleName {get; } = null;

    public Person(string firstName, string lastName, string middleName)
    {
        FirstName = firstName;
        LastName = lastName;
        MiddleName = middleName;
    }

    public Person(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
        MiddleName = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上我试着深入研究新的c#8功能.其中之一是NullableReferenceTypes.实际上已经有很多关于它的文章和信息.例如,这篇文章非常好.但是我找不到关于这个新陈述的任何信息null! 有人可以向我提供解释吗?为什么我需要使用它?又什么区别line1line2

c# c#-8.0 nullable-reference-types

56
推荐指数
3
解决办法
2836
查看次数

后缀!C#中的(感叹号)运算符

最后一天,我在GitHub上探索.NET源代码,偶然发现了以下结构:((SomeTypeToCast)variable!).SomeMethodToCall()

请注意后缀原来在这里列出

那么,一个简单的问题:这是什么?

PS:就我个人而言,我对这件事可能意味着几个猜测:有点“此值永远不会为空”。但是,在C#中没有这样的运算符(至少是公开可用的),并且当我自己在测试项目中尝试使用该表达式时,此类表达式无法编译。

c#

2
推荐指数
1
解决办法
175
查看次数

-2
推荐指数
1
解决办法
632
查看次数

标签 统计

c# ×3

c#-8.0 ×1

null ×1

nullable ×1

nullable-reference-types ×1