Compte tenuTuple.Create type de retour
void foo(Tuple<object> t)
{
}
void bar()
{
foo(Tuple.Create("hello"));
}
le compilateur C# retourne
error CS1502: The best overloaded method match for 'foo(System.Tuple<object>)' has some invalid arguments
error CS1503: Argument 1: cannot convert from 'System.Tuple<string>' to 'System.Tuple<object>'
Ajout de types explicites à Tuple.Create défaites son but. Comment puis-je convaincre le compilateur d'accepter le code? Je pense que
FWIW, C++ n'a pas ce problème: http://live.boost.org/doc/libs/1_33_1/libs/tuple/doc/tuple_users_guide.html#constructing_tuples
Si vous ne vous souciez pas d'être fortement typé, pourquoi ne pas utiliser un fol vide (params object [] args)? – cordialgerm