Я не думаю, что понимаю то, что Вы после. Если Вы требуете, чтобы что-то было определенным типом, то Вы, вероятно, не должны использовать Дженерики. Вы могли, это просто кажется глупым. Это сделает то, что Вы спрашиваете, но я не рекомендую его.
namespace GenericsOne
{
using System;
class Program
{
static void Main(string[] args)
{
Sample<int> one = new Sample<int>();
one.AddFive(10);
// yes, this will fail, it is to show why the approach is generally not a good one.
Sample<DateTime> two = new Sample<DateTime>();
two.AddFive(new DateTime());
}
}
}
namespace GenericsOne
{
using System;
public class Sample<T>
{
public int AddFive(T number)
{
int junk = 0;
try
{
junk = Convert.ToInt32(number);
}
catch (Exception)
{
Console.WriteLine("Nope");
}
return junk + 5;
}
}
}
Я часто вижу в сети совет в виде:
\let\Oldtodo\todo
\renewcommand{\todo}[1]{\Oldtodo[inline]{#1}}
для этой ситуации. Я считаю, что \ let
- это простая функция TeX.