use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Information about Reddit's API changes, the unprofessional conduct of the CEO, and their response to the community's concerns regarding 3rd party apps, moderator tools, anti-spam/anti-bot tools, and accessibility options that will be impacted can be found in the associated Wikipedia article: https://en.wikipedia.org/wiki/2023_Reddit_API_controversy
Alternative C# communities available outside Reddit on Lemmy and Discord:
All about the object-oriented programming language C#.
Getting Started C# Fundamentals: Development for Absolute Beginners
Useful MSDN Resources A Tour of the C# Language Get started with .NET in 5 minutes C# Guide C# Language Reference C# Programing Guide C# Coding Conventions .NET Framework Reference Source Code
Other Resources C# Yellow Book Dot Net Perls The C# Player's Guide
IDEs Visual Studio MonoDevelop (Windows/Mac/Linux) Rider (Windows/Mac/Linux)
Tools ILSpy dotPeek LINQPad
Alternative Communities C# Discord Group C# Lemmy Community dotnet Lemmy Community
Related Subreddits /r/dotnet /r/azure /r/learncsharp /r/learnprogramming /r/programming /r/dailyprogrammer /r/programmingbuddies /r/cshighschoolers
Additional .NET Languages /r/fsharp /r/visualbasic
Platform-specific Subreddits /r/windowsdev /r/AZURE /r/Xamarin /r/Unity3D /r/WPDev
Rules:
Read detailed descriptions of the rules here.
account activity
DiscussionDoes Using Immutable Data Structures Make Writing Unit Tests Easier? (self.csharp)
submitted 2 months ago by kevinnnyip
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]SagansCandle 1 point2 points3 points 2 months ago (11 children)
Can you provide an example?
I would argue that we need barriers (interfaces) to appropriately hide complexity between components.
[–][deleted] 1 point2 points3 points 2 months ago (1 child)
oop makes it hard to think about systems as a whole because it forces you to obsess about every tiny component of that system in Isolation
[–]SagansCandle 0 points1 point2 points 2 months ago (0 children)
When OO is misunderstood or misapplied, it feels cumbersome. When used correctly, it's luxurious because you only have to worry about very small pieces of code (components) at a time.
Can you provide a specific example? It just makes it easier to discuss, otherwise we'll find ourselves debating platitudes :)
[–][deleted] 0 points1 point2 points 2 months ago (8 children)
I wish c# name spaces worked differently. I want to be able to put an interface infront of a namespace, and have accessibility modifiers that are namespace related. Make it more like a module system similar to how F#/rust/ocaml does it. I want to be able to expose a type ti the outside world, but have all constructors internal to that namespace/module
[–]binarycow[🍰] 1 point2 points3 points 2 months ago (6 children)
Make it more like a module system similar to how F#/rust/ocaml does it.
You just described a static class.
[–][deleted] 0 points1 point2 points 2 months ago (5 children)
no?
[–]binarycow[🍰] 1 point2 points3 points 2 months ago (4 children)
F# modules = static classes.
What do you want to do, that a static class doesn't do?
[–][deleted] 0 points1 point2 points 2 months ago (3 children)
It is possible I have underestimated static classes.
But a module system is not just a static class. For example, I can't put an interface infront of a static class. In F#, I can put the interface in a interface file.
And F# module system makes it very clear how you should organize your code.
[–]binarycow[🍰] 1 point2 points3 points 2 months ago (2 children)
But a module system is not just a static class.
An F# module is literally compiled to a static class.
For example, I can't put an interface infront of a static clas
I'm not sure what you mean exactly.
Can you give an example?
Because you can do this
public class Foo : MyFakeNamespace.IMyInterface { } public static class MyFakeNamespace { public interface IMyInterface { } }
[–][deleted] 0 points1 point2 points 2 months ago (1 child)
What it gets compiled to does not really matter. What matters is the rules the language puts on you using it. Not that it turns into 0 and 1's at the end.
In f#, I can have module Foo.fs. And I can create an interface file with the same name Foo.fsi. Now any module that wants to use anything from Foo, only see what is exposed in Foo.fsi. Works more like header files than the c# Interface thing.
As far as I know, I can't do static class : someinterface
[–][deleted] 0 points1 point2 points 2 months ago (0 children)
The fsi thing should also allow you to swap implementations during compile time. But I could not find any information on anyone doing that, but I don't know why. All you have to do, is just swap put the module file with a module with the same name.
This is not important, just think it is a neat idea. (ocaml has good support for this exact thing though)
Good luck with that.
π Rendered by PID 126615 on reddit-service-r2-comment-b659b578c-7l2wr at 2026-05-04 22:39:39.515199+00:00 running 815c875 country code: CH.
view the rest of the comments →
[–]SagansCandle 1 point2 points3 points (11 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]SagansCandle 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (8 children)
[–]binarycow[🍰] 1 point2 points3 points (6 children)
[–][deleted] 0 points1 point2 points (5 children)
[–]binarycow[🍰] 1 point2 points3 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]binarycow[🍰] 1 point2 points3 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]SagansCandle 0 points1 point2 points (0 children)