So, some of you may not know about this keyword at all, but at one point in your life you may find out and feel that it will be useful to use it when you are doing mathematical operations in your code. Let’s start by discussing what this keyword provides. According to Microsoft documentation, the checked keyword is provided to explicitly enable arithmetic overflow for integer mathematical operations. In the past we have discussed how arithmetic overflows can cause problems and unexpected outcomes from our code. A prime example we mentioned is why Ghandi was a nuclear asshole in Civilization Continue reading C# – Why you should never use the checked keyword – Unless absolutely necessary
Concurrent collections are a feature added in .Net 4.0 and allow developers to create thread safe collections without worrying as much as they had to worry with Generic Collections.
They do not remove any possible concern the developer should have while working with resources that are accessed from multiple threads, but removes many of the common ones.
C# provides us many ways to safely handle shared resources from than one threads/tasks. In this blog post we will discuss some of the different types that exist (and they are many), the different programming patterns they are used for, their benefits and their drawbacks.
One of the big new features introduced with C# 7 is the ValueTuple.
Now we all know Tuples, we heard of their existence in C#, saw them in a tutorial and decided not to use them, ever again because they were completely awkward and difficult to use.
One small thing a lot of newcomers to C# and .Net in general are not aware of, is that Strings are immutable. What does that mean? That means a string you created cannot be altered. Strings can only be created and destroyed
In previous posts we discussed about casting using the ‘as’ operator instead of using the ‘classic way’ of casting (more info here). But there are a few things we need be careful when using ‘as’ and ‘is’ operators.
Let’s assume that you wish to call a method that has a return value and also accepts an out variable, but you do not wish to use the contents of the out variable that will be returned.
So far we were creating a dummy variable that will later not be used, or discarded.
With C# 7 you can now use Discards
CustomObject a = new CustomObject();
object b = (object)a;
Okay I am using an overly trivial example here but I think you get the point.
Now imagine the following example. We are given an enumerable form of data through the network, in JSON format let’s say, We are aware that this enumerable has different forms of data, some are objects, some are strings, some are ints etc. Bear with me here, I know this is a crazy scenario which has no meaning but let’s suspend our disbelief for a moment and go through with it. So let’s say we have the following Enumerable
Well implicit type casting is a feature of C# that helps you convert instances of custom Classes you created from one to another.