C#, Tech

Cannot implicitly convert type ‘Abc<Derived>’ to ‘IAbc<Base>’ – Contravariance vs Covariance – part 2.

Today I will write about the way variance (<in T> and <out T>) influences type checking in C#. Yes, the fact that one type can be passed to a generic method that requires another type, depends on these 2 small keywords we write before ‘T’ (or whatever ?) in interface header. BTW this article is the continuation of my previous post that makes a dummy introduction to the variance – if you haven’t seen it, then you should :P. Not because I wrote anything important there, but because my google analytics statistics will grow. So as you can see – it’s worth it :P.

Continue Reading
C#, Tech

Enumerable.Empty<T>() vs new ‘IEnumerable’<T>() – what’s better?

Reading Microsoft documentation when we have all that stackoverflow questions with answers usually seems a waste of time. And as a typical, lazy programmer I admit that (much too often) I agree with that sentence ?. But today I decided to check how Enumerable.Empty<T>() works and wasn’t satisfied with the knowledge I got. I started digging a little bit deeper and wasted some of the precious beauty-sleep time  so if you want to know what’s happening when you add an element to an empty collection, let me tell you a story of today’s night.
No, not that story, you sick head! Continue Reading

Tech

How to change language in Visual Studio 2019 (after installation)

I installed Visual Studio 2019 RC recently and accidantely forgot to select English as default language. Of course, I realized that mistake after installation and I had to spend way too much time on finding the solution for this problem (yeah, that’s weird, I know). So, I decided to write a short tutorial how to do it. I’m 100% sure, the future me will thank myself for this :D.

Continue Reading

C#, Tech

C# 8 features – part 1.

If you were online at least once in the previews week you probably noticed the biggest announcement from Microsoft! Yeah, everybody is talking about C# 8 planned features. And because the news is literally everywhere, I gave up and decided not to repeat what everybody already read. But that decision is no longer valid because back THEN (which means – yesterday or so) my pet project wasn’t so nasty and I wasn’t so stuck in the middle of some stupid, trivial task that seems to be unable to accomplish… So yeah, I changed my mind, I will wrote about C# 8, just to avoid touching (for at least a day 😉 ), the disaster I programmed :D. No, it’s not procrastination, not at all! ?

Continue Reading

Tech

How to insert/update more than 4000 characters in an Oracle table (because life cannot be too easy!)

I have never believed in those stories about non-intuitive Oracle databases. What can be so wrong with Oracle? It exists for quite a long time, big companies still use it… It’s just another database engine, right? Yeah, that was my way of thinking till I needed to update a row with a string longer than 4000 characters.

Because you know, you cannot just update this f*ing field in the database with an ordinal update statement. No! Plain update statements are for losers, we are Oracle users, ORACLE USERS! Yeah, read it once again, OOOOOOORACLE UUUUUSERS. That’s right, now just be kind and type the following statement that will make Oracle to show a small pop-up window where you put your long string (ugh, longer than 4000 characters – you are really disgusting to store such a long strings in your database, you know? Naughty programmer! Shame on you!). Continue Reading