Friday, August 27, 2010

Implementing a Basic Match class that uses Arithmetic Operator

http://en.csharp-online.net/Understanding_Generics%E2%80%94Creating_Generic_Interfaces

// Compiler error! Cannot apply
// operators to type parameters!
public class BasicMath<T>
{
public T Add(T arg1, T arg2)
{ return arg1 + arg2; }
public T Subtract(T arg1, T arg2)
{ return arg1 - arg2; }
public T Multiply(T arg1, T arg2)
{ return arg1 * arg2; }
public T Divide(T arg1, T arg2)
{ return arg1 / arg2; }
}



This can be achieved by using Interfaces
------------------------------------------

public interface IBinaryOperations<T>
{
T Add(T arg1, T arg2);
T Subtract(T arg1, T arg2);
T Multiply(T arg1, T arg2);
T Divide(T arg1, T arg2);
}




public class BasicMath : IBinaryOperations<int>
{
public int Add(int arg1, int arg2)
{ return arg1 + arg2; }

public int Subtract(int arg1, int arg2)
{ return arg1 - arg2; }

public int Multiply(int arg1, int arg2)
{ return arg1 * arg2; }

public int Divide(int arg1, int arg2)
{ return arg1 / arg2; }
}

No comments: