Filetage et méthodes statiques en C #

Voici une méthode d’extension sans signification comme exemple:

public static class MyExtensions { public static int MyExtensionMethod(this MyType e) { int x = 1; x = 2; return x } } 

Dites qu’un thread d’exécution se termine jusqu’à et incluant la ligne:

 x = 2; 

Le processeur change ensuite de contexte et un autre thread entre la même méthode et complète la ligne:

 int x = 1; 

Ai-je raison de supposer que la variable “x” créée et affectée par le premier thread se trouve sur une stack distincte de la variable “x” créée et atsortingbuée par le second, ce qui signifie que cette méthode est ré-entrante?

Oui, chaque thread obtient sa propre variable locale distincte. Cette fonction retournera toujours 2 même si elle est appelée par plusieurs threads simultanément.

Oui, c’est une évaluation correcte. x est une variable locale à une méthode et ne sera pas partagé entre les invocations de MyExtensionMethod .

Tout simplement, oui. Une méthode statique signifie uniquement que la méthode peut être appelée sans object. Les variables locales de la méthode sont toujours locales.