.Net 4.0 Generics Operatoren und Dynamic

Thomas Darimont

Erfahrenes Mitglied
Hallo,

hier mal ein kleines Beispiel wie man mit dynamic Typing Unterstützung für Operatoren bei der Verwendung von generics realisieren kann:

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Numerics;
using System.Reflection;

namespace De.Tutorials.Training
{
    class DynamicOpExample
    {
        static void Main(string[] args)
        {
            Console.WriteLine(new int[] { 1, 2, 3 }.DynamicSum());
            Console.WriteLine(new double[] { 1.3, 2.3, 3.4 }.DynamicSum());
            Console.WriteLine(new BigInteger[] { 1, 2, 3 }.DynamicSum());
            Console.WriteLine(new long[] { 1, 2, 3 }.DynamicSum());
            Console.WriteLine(new float[] { 1, 2, 3 }.DynamicSum());
        }

    }

    static class Extensions
    {
        public static T DynamicSum<T>(this IEnumerable<T> source)
        {
            dynamic sum = default(T);
            foreach (T element in source)
            {
                sum = (T)(sum + element);
            }
            return sum;
        }
    }

}


Ausgabe:
Code:
6
7
6
6
6

Gruß Tom
 
Mit Framework 2.0 und älter aber nicht möglich.
(Soweit ich weiss, bin mir eigentlich sogar sicher, hab kein VS hier, wollts nur mit erwähnt haben)

Wobei mir persönlich diese extra this Methoden nicht gefallen, aber das ist ein anderes Thema.
 

Neue Beiträge

Zurück