February 16th, 2009

A union is a data structure that stores several different types of data at the same single location in memory. Although this might sound like madness in a garbage collected world many older binary data formats still heavily rely on this. A possible use is if you want to modify an IPv4 address. An IPv4 address is 4 bytes, or an unsigned C# int. You might want to manipulate the IP address as a single value, or by splitting it into four separate bytes.
Read the rest of this entry »
Tags: c#, language
Posted in Uncommon C# | 1 Comment already!»
February 13th, 2009
By using pre-processor directives you can exclude parts of your code from being seen by the compiler. Excluded from the assembly they are never seen at run-time. This is different from a regular if (x) {} block where code is actually compiled in, evaluated at runtime and added to the assembly.
To understand why you would want to do this, a little history: One of the good things about C is that it works on every imaginable platform, the bad thing was of course that it works on every imaginable platform. There was always a little tweaking required to get your code to compile. Your program might have needed to compile on Amiga, DOS , OS/2, Windows or Linux. The invention of the preprocessor made this much easier. As a separate step prior to compilation it combs through the source code and modifies it according to the pre-processing instructions found in the source code. The C compiler never gets to see the things that don’t apply to it.
Read the rest of this entry »
Tags: c#, language, preprocessor directives
Posted in Beginner, Learn C# | No Comments, yet!
February 10th, 2009
With the introduction of .NET 3.5 C# includes the “var” keyword to support anonymous types. One important motivation for this was to make code written with LINQ (Language-Integrated Query) easier to read. So what is an anonymous type? Anonymous types simply mean that you don’t specify the type — but let the compiler do it instead.
Read the rest of this entry »
Tags: anonymous, c#, language, LINQ
Posted in Beginner, Learn C# | No Comments, yet!
February 9th, 2009
If you are up to date with your Ubuntu distribution you will be using Mono 1.9.1 which has support for C# LINQ build in. Enabling it is as easy as adding “using System.Linq” to your project. The following code snippet is the LINQ equivalent of a “Hello World” application:
using System;
using System.Linq;
class MainClass
{
public static void Main(string[] args)
{
String[] world = { "Hello World", "Hello Mars" , "Hello Venus" };
var rightOne = from s in world where s.EndsWith("World") select s;
foreach(string planet in rightOne)
Console.WriteLine("{0}",planet);
}
}
The first time I tried compiling it, MonoDevelop gave me the following error:
An implementation of `Where’ query expression pattern could not be found. Are you missing `System.Linq’ using directive or `System.Core.dll’ assembly reference?(CS1935)]
You can solve this by ensuring that you have added “System.Core” as a reference to your solution/project. You can do this by right clicking “References” in the “Solution Panel” and selecting “Edit References”.
Tags: language, LINQ
Posted in Uncategorized | No Comments, yet!