Posts

Showing posts from December, 2007

Path.Combine - C# 3.0 Extension Method

O data cu C# 3.0 au venit si metodele extensie. Sunt foarte utile cand se vrea a se extinde o clasa care nu poate fi mostenita cum e clasa string.
Un alt avantaj e ca schimba notatia prefix a metodelor statice cu una infix, ceea ce face codul mult mai clar si mai usor de scris. De exemplu metoda statica Combine din clasa Path concateneaza doua stringuri pentru a obtine o cale fizica valida. Pentru doua stringuri e OK, dar atunci cand se combina mai mult de doua stringuri deja incepi sa numeri paranteze.

public static class PathExtension
{
public static string Combine(this string instance, string path2)
{
return Path.Combine(instance, path2);
}
}
class Program
{
static void Main(string[] args)
{
string root = "C:\\";
string mainFolder = "Files";
string subFolder = "Backup";
string fileName = "today.xml";

// notatie prefix
Console.WriteLine(
Path.Combine(
Path.Combine(
Path.Combine(root, mainFolder),subFolder),fileName));

// notatie infix