5 ms·
I do not like that "global using" as well. I wonder why they added it.
by amir734jj 5y ago
I do not like that "global using" as well. I wonder why they added it.
- orthoxerox 5y agoBecause most files in C# start with: using System; using System.Collections.Generic; and a few more lines like that. Think of this part of the BCL as the prelude in Haskell.
- slownews45 5y agoIt's an easy way to do a config without a full importer and complexity in passing config around / looking it up. I like it. This goes way back. They give the example of a globalusings file. That's a cheap / easy way to do a config file (at least one use case).
- Someone1234 5y agoLooks like they added global usings to support their implicit usings functionality. Essentially they want to save people having to put using System, System.Linq, System.Collections.Generic, and others[0] at the top of nearly every C# file. I'm of two minds: - I think they're an anti-pattern, because it creates a global scope that can get messy/annoying. - It makes a ton of sense for the implicit usings functionality, and I'm tired of needing to add the basic SDK usings to every source file. So the ideal is to enable .Net's implicit usings, then to use an analyzer to "ban" adding more global usings directly from your solution/project. Best of both worlds that way. Alternatively just make them a no-pass item for code reviews. [0] https://docs.microsoft.com/en-us/dotnet/core/compatibility/sdk/6.0/implicit-namespaces-rc1 https://docs.microsoft.com/en-us/dotnet/core/compatibility/s...
- sbelskie 5y agoThis is what I’ve settled on. Implicit usings for the SDK are great but otherwise I don’t want this in any code base I work on.
- metaltyphoon 5y agoIt's literally the same as Rust's prelude system and I don't see anyone complaining so much about this.
- t-writescode 5y agoRust doesn't have anywhere near the following of C#, so there probably aren't enough opinionated people in the community to mention it on an HN post
- AlfeG 5y ago> Essentially they want to save people having to put using System, System.Linq, System.Collections.Generic, and others[0] at the top of nearly every C# file. Interesting that this doesn't bother me at starting from .net 1.0. All tools (including raw VS without addins) can add those using automatically and they do. But for me it's still a nice to have feature if VS will be able to show where this using is defined.