|
|
|
|
|
by andygocke
338 days ago
|
|
> MS have done is to outsource the issue to all C# devs Let's be clear: breaking dozens of tools because of a change to the IL format also outsources an issue to all C# devs. The .NET IL format has been basically unchanged since .NET 2.0 and huge numbers of people take very hard dependencies on the exact things they do and do not expect. I don't expect we would have been able to make significant changes due to the breaking change impact. > A possible approach I mentioned This would likely be even harder to understand. For better or worse, the .NET design is that external initializers happen _after_ the constructor runs. That's been true all the way back to when the initializer syntax was first introduced in C# 3. Making regular initializers and `with` initializers have inverted order strikes me as being way worse. If I could go back in time, I think the main change to C# I would make would be to enforce that the constructor always runs after all external initialization. |
|
What am I missing?