Generics: Wertzuweisung ohne Boxing

16/04/2008 - 18:01 von Robert Fuchs | Report spam
Hallo,

ich glaube, ich stehe auf der Leitung.
Wie kann ich in einer generischen Methode einen Wert zuweisen, ohne Boxing
zu verwenden?

zB. mit Boxing- funktioniert:

void TestMethod<T>(ref T oldValue, T newValue)
{
object temp = newValue;
if (temp is string)
{
if (!String.IsNullOrEmpty(temp as string))
{
temp = (temp as string).Trim();
}
}
oldValue = (T)temp;
}


Ohne Boxing - geht natürlich so nicht:

void TestMethod<T>(ref T oldValue, T newValue)
{
if (newValue is string)
{
if (!String.IsNullOrEmpty(newValue as string))
{
newValue = (newValue as string).Trim();
// Eine implizite Konvertierung vom Typ "string" in "T" ist
nicht möglich.
}
}
oldValue = newValue;
}

mfg Robert
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
16/04/2008 - 18:14 | Warnen spam
"Robert Fuchs" schrieb:
Wie kann ich in einer generischen Methode einen Wert zuweisen, ohne Boxing
zu verwenden?

zB. mit Boxing- funktioniert:

void TestMethod<T>(ref T oldValue, T newValue)
{
object temp = newValue;
if (temp is string)
{
if (!String.IsNullOrEmpty(temp as string))
{
temp = (temp as string).Trim();
}
}
oldValue = (T)temp;
}



Falls 'T' = 'string', findet ohnehin kein Boxing statt.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen