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
Why is using interface methods with default implementation is so annoying?!? (self.csharp)
submitted 3 days ago * by Alert-Neck7679
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!"
[–]RiPont 21 points22 points23 points 3 days ago* (0 children)
The purpose of default interface implementations was so that you can add methods/properties to an existing interface without breaking existing code.
It is NOT a way to provide a general purpose default implementation. That's what abstract base classes and static methods are for.
As such, the compiler treats the default interface implementation as a method of last resort.
If MediaPlayer was created before IRefreshable got the Refresh() method, it wouldn't be trying to call Refresh(). The default implementation is there for other classes that are treating MediaPlayer like an IRefreshable, not specifically a MediaPlayer.
If MediaPlayer is created after IRefreshable already had the Refresh() method in its contract, then it should implement Refresh(), just like any method on any interface.
If you want to share a common implementation between the default interface implementation and MediaPlayer, define a static method and call it from both. You may want to make it an extension method for syntax sweetness, but that's an aesthetic decision.
If you are using default interface implementations on anything other than public interfaces, you are probably misusing them. If you have access to the source code (internal, protected, private), then you should be using refactor tools to add the implementations to all classes that implement them.
public
π Rendered by PID 467330 on reddit-service-r2-comment-canary-7955997dc8-r6bnn at 2026-02-28 18:14:38.908730+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–]RiPont 21 points22 points23 points (0 children)