C
C#2mo ago
xandyMelo

✅wrong warning

I came across a case where the C# extension in visual studio code generated the warning: The result of the expression is always 'true' since a value of type 'decimal' is never equal to 'null' of type 'decimal?'CS0472 code below
var aux = query
.GroupBy(x => x.Data)
.Select(gp => new Metrics
{
Data = gp.Key.Date,
// #pragma warning disable CS0472
OrganicTrash = gp.Sum(x => x.Quantidade.Value) != null ? gp.Sum(x => x.Quantidade.Value) : 0
// #pragma warning restore CS0472
}).ToList();

return aux;
var aux = query
.GroupBy(x => x.Data)
.Select(gp => new Metrics
{
Data = gp.Key.Date,
// #pragma warning disable CS0472
OrganicTrash = gp.Sum(x => x.Quantidade.Value) != null ? gp.Sum(x => x.Quantidade.Value) : 0
// #pragma warning restore CS0472
}).ToList();

return aux;
It turns out that OrganicTrash was returning null in cases where quantity was null. I know I can use pragma to stop the warning, but I was curious if I could try to fix this, I took a look at the repository and I'm thinking that I'll actually need to work on the roslyn repository. Any opinions? I'm a beginner and looking for more experienced opinion.
2 Replies
Jimmacle
Jimmacle2mo ago
gp.Sum(x => x.Quantidade.Value) will never be null you're testing if it's not null, so it's warning you that the test will always evaluate to true unless this is EF Core or something translating the expression to SQL, in which case yeah the compiler warnings aren't really applicable so i'd just disable it
xandyMelo
xandyMelo2mo ago
I understand, this is in a query and I'm using EF Core, so I believe this is exactly what you mentioned. Because there were cases that returned null
Want results from more Discord servers?
Add your server