dotnet/roslyn

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

開放

#84,987 建立於 2026年8月20日

 (0 則留言) (0 個反應) (1 位負責人)C# (4,257 個分叉)batch import
Area-CompilersFeature - Nullable Reference Typeshelp wanted

倉庫指標

星標
 (20,414 顆星)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 256 個 PR)

描述

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; }   
}

貢獻者指南