fuck_around/find_out
fuck_around/find_out
fuck_around/find_out
You're viewing a single thread.
I don’t get the joke. Is the one on the left actually valid C# code?
C# is basically Java and from what I can tell, this looks approximately valid.
Variables can always* be named freely to your liking.
*You used to have to stick to the Latin alphabet, but that’s increasingly not the case anymore. Emoji-named variables FTW!
It looks valid but vibe isn’t declared anywhere so it won’t compile.
No it’s not “basically Java”
Aside from how Microsoft stole it, fucked the standard library, fucked the naming conventions, etc. You would never just “throw” without specifying what you were throwing.
This is incorrect. The C# is valid. Throw in a catch statement simply rethrows the caught exception. Source: I've been writing C# for 20 years, also the docs.
I won't act like MS absolutely didn't steal core concepts and syntax from Java, but I've always thought C# was much more thoughtfully designed. Anders Hejlsberg is a good language designer, TypeScript is also a really excellent language.
In Java you would say “throw e;” (to rethrow the same exception you just caught.)
You wouldn’t just say “throw”
Or you could also throw some other exception. But the syntax requires you specify what it is you are throwing. (And sane in C++, where you could throw any object, even a primitive.)
So that was my question.
Wildly, in C# you can do either and it has different results. I believe a bare throw
doesn't append to the stack trace, it keeps the original trace intact, while throw e
updates the stack trace (stored on the exception object) with the catch and rethrow.
In C#, you can only throw objects whose class derives from Exception.
You can do either, but you usually do neither. The best way is to throw a new exception for your situation and add the caught exception as an inner exception. Because rethrowing resets the stack trace, removing the context from an exception message that is often pretty vague, and "bouncing" with throw;
doesn't tell the next exception handler that you already handled (part of) the exception.
As a C# developer Java go go and die lol. It sucks imo.
Everyone is entitled to their own opinion.
To be honest I’m just playing into the meme of Java.
My understanding is it’s academically great, but a pain in practice.
For reference we use C# .Net, Entity Framework with GraphQL and React TypeScript for our enterprise applications and I really like C# now, but when I first started I’d only really used Node.js and some Java.
I started my career in Java and transitioned to c# a few years in and c# is much better imo, especially now that .Net can be run in Linux.
I run a team for a large project (13 deployable components apis/ Windows services/ desktop applications/ websites/mobile) that has mix of vb.net/c# .net framework 4.8 and .net 6 soon to be 8 with angular for Web and wpf for desktop. Slowly but surely working to kill off our legacy code and consolidate.
Some of the older vb code (that existed long before I joined the project let alone became the lead dev) is so bad that a bug fix for nhibernate that stopped silently failing and began throwing exceptions breaks everything if we try to update to a later version. it's such a tangled mess and I'm probably the only one on my team that could unfuck it(but I didn't have the time to do it) it's not even worth fixing even though our version of nhibernate has a CVE with rating of 9/10 (we don't actually use anything that is affected from the finding thankfully) and are just biding our time till we kill off the offending apps.
Ohh and I have a new PM that isn't technical and likes to email me his chat GPT queries and results about technical things.
No problem. I’m not sure if all of that would run on all the platforms I use.
.net can run on Linux now