dotnet/roslyn

Default value of a struct type should give nullable initial state to some field-backed properties

オープン

#84,987 opened on 2026/08/20

 (0 件のコメント) (0 件のリアクション) (1 人の担当者)C# (4,257 件のフォーク)batch import
Area-CompilersFeature - Nullable Reference Typeshelp wanted

Repository metrics

Stars
 (20,414 個のスター)
PR merge metrics
 (平均マージ 6d 17h) (30d で 256 merged PRs)

説明

The current behavior is dependent on whether we are currently constructing the struct instance, and feels a little inconsistent.

Basically, it feels like we should be able to get a similar behavior for member flow states, when any default value of a struct type is used, as when we are working out the initial state of struct fields in a constructor.

Note that 'null-resilient' properties using field keyword would be excepted from this. Their initial flow state would be the same as the property. Currently working on a change to make that work more consistently in constructors. (resolving #77991).

I consider this issue low priority

struct S
{
    public void M()
    {
        this = default;
        this.Prop2.ToString(); // no warning
    }

    public S()
    {
        this = default;
        Prop2.ToString(); // warning
    }

    public string Prop2 { get; set; }   
}

コントリビューターガイド