В класс мы можем добавить метод с универсальными параметрами т.е. метод будет содержать параметры любого типа.
Синтаксис
имя_шаблона_out Имя_Метода<имя_шаблона1, имя_шаблона2, ..., имя_шаблона_out>(имя_шаблона1 value1, имя_шаблона2 value2, ...)
{
...
}
C#
Создаем новое C# консольное приложение... и напишем код
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class MyCalculator
{
// метод с универсальными параметрами типы T1 и T2
public double Sum<T1, T2>(T1 value1, T2 value2)
{
double dValue1 = Convert.ToDouble(value1);
double dValue2 = Convert.ToDouble(value2);
return dValue1 + dValue2;
}
}
class Program
{
static void Main(string[] args)
{
MyCalculator calculator = new MyCalculator();
// вызываем метод с универсальными параметрами где тип T1 это int, T2 это string
double result1 = calculator.Sum<int, string>(2, "6");
Console.WriteLine(result1);
// на экране увидим
// 8
// вызываем метод с универсальными параметрами где тип T1 это int, T2 это double
double result2 = calculator.Sum<int, double>(3, 5.4);
Console.WriteLine(result2);
// на экране увидим
// 8.4
// вызываем метод с универсальными параметрами где тип T1 это string, T2 это string
double result3 = calculator.Sum<string, string>("5.6", "1.3");
Console.WriteLine(result3);
// на экране увидим
// 6.9
}
}
}
C#
Создаем новое C# консольное приложение... и напишем код
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class MyCalculator
{
// метод с обычным параметром типа int и универсальными параметрами типы T1 и T2
public string Sum<T1, T2>(int value, T1 value1, T2 value2)
{
double dValue1 = Convert.ToDouble(value1);
double dValue2 = Convert.ToDouble(value2);
double sum = (double)value + dValue1 + dValue2;
return sum.ToString();
}
}
class Program
{
static void Main(string[] args)
{
MyCalculator calculator = new MyCalculator();
// вызываем метод с универсальными параметрами где тип T1 это double, T2 это string
string result1 = calculator.Sum<double, string>(7, 2.5, "6");
Console.WriteLine(result1);
// на экране увидим
// 15.5
// вызываем метод с универсальными параметрами где тип T1 это double, T2 это int
string result2 = calculator.Sum<double, int>(7, 2.5, 10);
Console.WriteLine(result2);
// на экране увидим
// 19.5
// вызываем метод с универсальными параметрами где тип T1 это string, T2 это string
string result3 = calculator.Sum<string, string>(7, "12.8", "4");
Console.WriteLine(result3);
// на экране увидим
// 23.8
}
}
}