Chcę stworzyć prostą funkcję rodzajoweC#: Jak korzystać z metody rodzajowe z „out” zmienna
void Assign<T>(out T result)
{
Type type = typeof(T);
if (type.Name == "String")
{
// result = "hello";
}
else if (type.Name == "Int32")
{
// result = 100;
}
else result = default(T);
}
Zastosowanie:
int value;
string text;
Assign(value); // <<< should set value to 100
Assign(text); // <<< should set text to "hello"
Moje pytanie jest jak można zaprogramować kod, aby ustawić te wartości, tj.. brakujące kody w sekcji komentarzy.
Dzięki za pomoc.
Thanks a lot; to działa. Powodem, dla którego stosuję podejście ogólne jest uproszczenie mojego kodu. Ponieważ "przypisanie kodu" jest potrzebne tylko dla określonego typu (np. Ciąg); byłoby źle tworzyć przeciążone funkcje dla wszystkich możliwych typów. result = default (T) // to typowe zachowanie –
Nie zgadzam się z tobą. Myślę, że przeciążanie jest właśnie do tego. Używaj generycznych tylko w razie potrzeby. – Sheldon