Rétro-analyse de System.Web.Util.StringUtil
Bonjour à tous!
Pour un projet perso, je suis en train d'implémenter un moteur de templating. L'idée est reprendre le même principe que ce qui est fait en ASP.NET. C'est pourquoi je suis en train de faire un rétro-analyse de System.Web.UI.ControlBuilder, qui utilise indirectement une classe utilitaire : System.Web.Util.StringUtil.
Cette classe possède le code suivant (déssamblé via Reflector.Net) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
internal static unsafe void UnsafeStringCopy(string src, int srcIndex, char[] dest, int destIndex, int len)
{
int num = len * 2;
fixed (char* str = ((char*)src))
{
char* chPtr = str;
fixed (char* chRef = dest)
{
byte* numPtr = (byte*)(chPtr + srcIndex);
byte* numPtr2 = (byte*)(chRef + destIndex);
memcpyimpl(numPtr, numPtr2, num);
str = null;
}
}
} |
Or quand j'essaye de compiler ce code, j'ai deux types d'erreur que je ne comprends pas :
-1-
Citation:
Cannot convert type 'string' to 'char*'
-2-
Citation:
You cannot use the fixed statement to take the address of an already fixed expression
Avez-vous une idée pour résoudre ses erreurs ? Il y a t-il une option de compilation de type /unsafe (qui est déjà activé biensûr) ?
Je suis assez étonné que Reflector.Net affiche un code qui ne compile pas, c'est la première fois que cela m'arrive!
Merci d'avance de votre aide!