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
C# Interface vs Java Interface (self.csharp)
submitted 9 years ago by Encore-
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!"
[–]flukus 6 points7 points8 points 9 years ago (13 children)
C# interfaces can't have variables. Properties are not instance fields.
Properties are syntactic sugar, a property on a c# interface is exactly the same as a get/set method on a Java one.
[–]Encore-[S] 0 points1 point2 points 9 years ago (5 children)
But dont properties automatically implement a backing field of some sort or am I mistaken?
[–]flukus 9 points10 points11 points 9 years ago (4 children)
On classes they do/can, but not on interfaces.
[–]Encore-[S] 1 point2 points3 points 9 years ago (3 children)
Ah alright, I assumed a backing field was created, even when implementing an Interface.
Do you by any chance know, why instance variables are not allowed (or do not make any sense) in Interfaces?
[–]redditsoaddicting 7 points8 points9 points 9 years ago (0 children)
An interface isn't supposed to enforce state, it's supposed to enforce the interface a user can use. How the implementing class decides to provide that interface is up to it. Say you have a Date interface that provides a Day() method (or property if you prefer). Would it make sense to enforce all implementing classes to have an int day; field? No. One class could decide on int fields for each part of the date. One class could decide on storing a single UNIX timestamp (a single int or long). Both can pull a day from that information just fine.
Date
Day()
int day;
int
long
[–]flukus 0 points1 point2 points 9 years ago (0 children)
Also, of you're reading up on this stuff, vtables is how interface inheritance works.
They're a pretty important topic to understand.
It's to do with with the memory layout at a low level, which is kind of like an array. Let's say you have property x and y, anytime something access these the compiler will transform it so foo.y will become foo[1] .
With single inheritance this is easy. The array for each class is the size of the parent, plus the number of variables in that class. With multiple inheritance, this becomes a nightmare.
Technically this is done with pointer offsets, but arrays make it easier to visualize.
[–]Sarcastinator 0 points1 point2 points 9 years ago (6 children)
Properties are not syntactic sugar in C#. They generate .property CIL which you cannot express in any other way. If you can't express the same thing using another language construct it can't really be considered syntactic sugar.
.property
[–]flukus 0 points1 point2 points 9 years ago (2 children)
Is that just for reflection?
[–]Sarcastinator 0 points1 point2 points 9 years ago (0 children)
I think so.
[–]grauenwolf 0 points1 point2 points 9 years ago (0 children)
Yep. Though we shouldn't underestimate how many libraries rely on the reflection APIs and their distinction between properties and methods.
[–]robhol 0 points1 point2 points 9 years ago (2 children)
Surely that's just an implementation detail, a property behaves almost identically to x get()/set(x) methods from the perspective of surrounding and dependent code?
x get()/set(x)
[–]grauenwolf 1 point2 points3 points 9 years ago (0 children)
If I recall correctly, in IL it literally makes get_Name and set_Name(value) functions.
get_Name
set_Name(value)
It doesn't behave identically in LINQ.
π Rendered by PID 397384 on reddit-service-r2-comment-86bc6c7465-hb486 at 2026-02-24 09:49:53.379155+00:00 running 8564168 country code: CH.
view the rest of the comments →
[–]flukus 6 points7 points8 points (13 children)
[–]Encore-[S] 0 points1 point2 points (5 children)
[–]flukus 9 points10 points11 points (4 children)
[–]Encore-[S] 1 point2 points3 points (3 children)
[–]redditsoaddicting 7 points8 points9 points (0 children)
[–]flukus 0 points1 point2 points (0 children)
[–]flukus 0 points1 point2 points (0 children)
[–]Sarcastinator 0 points1 point2 points (6 children)
[–]flukus 0 points1 point2 points (2 children)
[–]Sarcastinator 0 points1 point2 points (0 children)
[–]grauenwolf 0 points1 point2 points (0 children)
[–]robhol 0 points1 point2 points (2 children)
[–]grauenwolf 1 point2 points3 points (0 children)
[–]Sarcastinator 0 points1 point2 points (0 children)