2 votes

La méthode d'extension pour la conversion est-elle sûre ?

Veuillez considérer ce code :

public static int ToInt (this string str)
{
    return Convert.ToInt32 (str);
}

Dois-je utiliser lock pour cette déclaration ?


EDIT 1)

public static int ToInt(this string str)
{
    int Id = -1;
    if (str.IsEmpty() == true ||
        int.TryParse(str.Trim().Replace(",", ""), out Id) == false)
    {
        throw new Exception("Invalid Parameter: " + str);
    }
    else
    {
        return Id;
    }         
}

Cette méthode est-elle aussi du type "thread-sate" ?

6voto

BradleyDotNET Points 12000

Non, un verrou n'est pas nécessaire.

string est immuable ; un autre thread ne peut donc pas modifier son contenu pendant que vous essayez de l'analyser.

Cela n'a rien à voir avec les méthodes d'extension ; celles-ci peuvent être ou non thread-safe en fonction de ce qu'elles font (ou des paramètres qu'elles prennent).

D'ailleurs, à moins que le lock a été respecté ailleurs dans le code ; le faire ne changerait rien... (encore une fois, au moins pour cette méthode)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X