dotnet/runtime

C# compiler should not report CS0649 when the fields in question are marked with [DataMember] attribute

Open

#45.207 geöffnet am 25. Nov. 2020

Auf GitHub ansehen
 (3 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C# (5.445 Forks)batch import
area-Serializationhelp wanted

Repository-Metriken

Stars
 (17.886 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 12T 11h) (661 gemergte PRs in 30 T)

Beschreibung

Version Used:

Visual studio 2019 16.8.2

Steps to Reproduce:

Compile code like this:

[DataContract]
sealed class TimeSeriesPoint
{
	[DataMember]
	public float compliance, volume;
}

Expected Behavior:

Maybe no warnings at all.

Maybe a different message, like "...will always have its default value 0, unless set by deserializing".

Actual Behavior:

Warning CS0649: Field 'TimeSeriesPoint.volume' is never assigned to, and will always have its default value 0.

This is incorrect because despite these fields are never assigned to, they won't always have a default value, due to serialization.

Contributor Guide