C#

C# Delegates – a fairy tale about when (and how) to use them.

Many people neglect C# delegates because they cannot find a reason to use them. On the other hand, there is (rather small) group of people who overuse delegates in code that could be easily replaced by literal method call. So when should we use delegates? Well, they show their real power in situations when we need a mechanism to easily switch from one logic to another, without changing our application’s core code. Continue Reading

C#

C# stuff nobody told you – enum is a b*tch!

New year, new me… Just kidding, no running or yoga plans, but I decided to have a (temporary) break with ‘C# attributes you should know’ series and start with a brand new one – C# facts that somehow surprised me. For the first article, I will show you how (friendly looking, always helpful, good guy) enum can become an asshole. An asshole who will steal your precious time!

Continue Reading

C#

C# attributes you should know #3: [DebbugerBrowsable] and [DebuggerDisplay]

Today I again focus on the attributes that will make your debugging less painfull :). This time my scribbles should appeal to the programmers who prefer keeping their code clean (and adhere to the principle: the less ‘spare’ code the better).
So grab a mug of whatever you like and take a look at DebbugerBrowsable and DebuggerDisplay . The first one may be a good alternative to DebuggerTypeProxy I described in previous post and the second one is just ‘a must’ (really!) that makes life easier. Continue Reading

C#

C# attributes you should know #2: [DebuggerStepThrough] and [DebuggerHidden]

Last time I wrote about C# attribute DebuggerTypeProxy that helps us customize the way we display our type’s data while debugging. Today I would like to introduce you to the world of attributes that helps you skip some parts of code while debugging. Most of the C# programmers probably know them well, but I realized that only a few can tell the differences between them. So, ladies and gentlemen, let me introduce you the DebuggerStepThrough and DebuggerHidden. Continue Reading

C#

C# attributes you should know #1: [DebuggerTypeProxy]

[DebuggerTypeProxy] is very useful attribute when you have a class that inherits from another class and that one inherits from another one, and some of the classes contain collections of items and hundreds of properties that in fact are not important to you… Strictly speaking, when displaying class’ members while debugging makes you feel like quitting the job. Continue Reading

C#

C# Attributes – introduction

C# Attributes are very popular for ‘decorating’ assembly with some additional data, usually influencing on the application’s behavior or the way data are managed. You probably already used at least some of them – Obsolete, Serializable, Required, Display, MaxLength, RegularExpression, WebMethod are only a few of hundreds available in .Net world. What is more, you can write your own custom attribute and use it like a build-in one. I will write more about this in the next post. Right now, let’s focus on… Continue Reading

Tech

Ctrl + E, E – the best Visual Studio shortcut I’ve seen so far!

I can’t be the only person who hates waiting for the code to compile and run… Especially when I want to test only a small part of it! That’s a total waste of time! But good news everyone, I found a way to run a part of my C# code without building the whole project!

Ctrl + E, E – the magical shortcut!

Ok, so if we want to run just the fragment of our code – this is what we do:
1.    Select the fragment of code we want to run. Continue Reading

DSP2017, Tech

Let’s make ‘yield return’ our best friend!

How many programmers you know use ‘yield‘? Seriously, if you have an occasion, ask them – I’m afraid you will notice a strange thing – everybody heard about it but (almost) nobody (including me) uses it. Time to change it! Why? Because ‘yield‘ was introduced in C# 2.0 (yeeeah, it’s that old!) and can help you get rid of some of the ‘temp’ collections in your code and, what’s more important, it may prevent you from System.OutOfMemory exception. Continue Reading