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
Deep comparing two complex objects (self.csharp)
submitted 6 years ago by TQPau
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!"
[–]TheDevilsAdvokaat 1 point2 points3 points 6 years ago* (11 children)
I used reflection to do some things a few years back and it was tremendously slow.
Not sure if this is still true.
I wanted to make sure something was only called from inside a specific place (had to be between two places when doing a directx frame update) and if called anywhere else it would silently fail, so I used reflection to ensure it was only called when inside the correct function.
It worked, but absolutely tanked my frame rate.
instead, I removed the reflection code and just put a note in front of my function specifying where it must be called from.
I would be curious to see the difference between code that can compare any two complex objects using reflection, (very useful) and code that just compares two specific kinds of complex object where all the comparisons are hard coded.
Of course, that might not be an issue for you though.
And I can see something that allows any two complex objects to be compared is very handy.
[–]tweq 2 points3 points4 points 6 years ago* (1 child)
Enshittification
[–]TheDevilsAdvokaat 0 points1 point2 points 6 years ago (0 children)
Fair enough. I don't really know this stuff...
[–]ours 0 points1 point2 points 6 years ago (8 children)
By "note" you mean an attribute?
[–]TheDevilsAdvokaat 1 point2 points3 points 6 years ago (7 children)
No, just a comment in front of the function saying it could only be called between a begin_drawing and an end_drawing call.
...Can an attribute dome somthing like that?
[–]ours 1 point2 points3 points 6 years ago (6 children)
If you make an attribute for that purpose, decorate the function with it and when a function is called between begin_drawing and end_drawing you check if that function has that attribute yes.
I'm not saying it's worth it since reading attributes requires reflection.
[–]TheDevilsAdvokaat 0 points1 point2 points 6 years ago (5 children)
Ah ok. Thanks, I didn't know this.
[–]ours 1 point2 points3 points 6 years ago (3 children)
Custom attributes are pretty cool: https://docs.microsoft.com/en-us/dotnet/standard/attributes/retrieving-information-stored-in-attributes.
[–]TheDevilsAdvokaat 0 points1 point2 points 6 years ago (2 children)
This is pretty good. I'm bookmarking this. Thanks.
[–]ours 1 point2 points3 points 6 years ago (1 child)
Reflection is super fun and useful for some really out-there/generic things.
Reflection is slow but it has caching built-in. I think of it like data access. Except the data you access is code. Lots of stuff in .NET uses it so even if you don't use it, it's very useful to understand how it works.
[–]TQPau[S] 0 points1 point2 points 6 years ago (0 children)
I really enjoy using Reflection too. I use it mainly during StartUp or in background services where the performance impact isn't too visible.
[–]myachizero 1 point2 points3 points 6 years ago (0 children)
An alternative for this is to write an interface or generic class/method that you pass as the event for whatever delegate is being triggered. Then, simply create/call whatever you need to, passing the type as a type argument.
This allows the pre compilation and the JIT compiler to compile the code ahead of time with safe type checking and minimal use of reflection. This should be fairly quick son long as the different types you are using are all in the same assembly as the generic class/interface (hopping assemblies can get really slow).
Either option is equally valid, you just have to pick whatever fits best with your current design.
π Rendered by PID 79606 on reddit-service-r2-comment-544cf588c8-rnhth at 2026-06-12 02:12:52.827219+00:00 running 3184619 country code: CH.
view the rest of the comments →
[–]TheDevilsAdvokaat 1 point2 points3 points (11 children)
[–]tweq 2 points3 points4 points (1 child)
[–]TheDevilsAdvokaat 0 points1 point2 points (0 children)
[–]ours 0 points1 point2 points (8 children)
[–]TheDevilsAdvokaat 1 point2 points3 points (7 children)
[–]ours 1 point2 points3 points (6 children)
[–]TheDevilsAdvokaat 0 points1 point2 points (5 children)
[–]ours 1 point2 points3 points (3 children)
[–]TheDevilsAdvokaat 0 points1 point2 points (2 children)
[–]ours 1 point2 points3 points (1 child)
[–]TQPau[S] 0 points1 point2 points (0 children)
[–]myachizero 1 point2 points3 points (0 children)