Код: Выделить всё
static class ExtendInt
{
public static bool HasFactor(this int source, int factor)
{
return (source % factor == 0);
}
}
class Program
{
static void Main()
{
int i = 50;
int f = 2;
bool b = i.HasFactor(f);
Console.WriteLine("Is {0} a factor of {1}? {2}",f,i,b);
Console.ReadLine();
}
}
Теперь я хотел бы применить один и тот же метод HasFactor к Int16 и Int64. Однако я бы предпочел не писать отдельные методы расширения для каждого типа int. Я мог бы написать один метод для Int64, а затем явно привести все к Int64 или long, чтобы появился метод расширения.
В идеале я бы предпочел, чтобы один и тот же метод расширения применялся ко всем трем типам без необходимости копировать и вставлять много кода.
Возможно ли это вообще в C#? Если нет, существует ли рекомендуемая передовая практика для подобных ситуаций?
Подробнее здесь: https://stackoverflow.com/questions/199 ... iple-types
Мобильная версия