Méthode d'extension par référence impossible ?
Bonjour,
J'utilise pas mal les méthodes d'extensions mais je viens de me rendre compte qu'on ne peut pas modifier la variable par référence.
Par exemple on ne peut pas faire quelque chose comme :
Code:
1 2 3 4
| public static void SetTest( ref this string str )
{
str = "new str";
} |
Code:
1 2 3 4
| string test = "str";
test.SetTest();
System.Console.Write( test );
//Output : new str |
On est apparemment obligé de faire ça
Code:
1 2 3 4
| public static string SetTest( this string str )
{
return "new str";
} |
Code:
1 2 3
| string test = "str";
System.Console.Write( test.SetTest() );
//Output : new str |
L’erreur est assez explicite :
Citation:
The parameter modifiers `this' and `ref' cannot be used together
(http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx)
Mais je me demande si il n'y pas moyen de contourner du manière ou d'une autre cette limitation ?