Méthodes et champs statiques
Définissez des membres qui appartiennent au type lui-même.
Méthodes et champs statiques est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.
Statique ou d’instance
Un membre d’instance appartient à chaque objet ; un membre statique appartient à la classe elle-même. Il existe exactement une copie d’un membre statique, partagée par tous.
using System;
class Counter
{
public static int Total; // shared
public int Id; // per instance
}
class Program
{
static void Main()
{
Counter.Total = 5;
Console.WriteLine("Shared Total: " + Counter.Total);
}
}Déclarer des champs statiques
Un champ static est accessible via le nom de la classe, et non via une instance : ClassName.Field.
using System;
class Bank
{
public static decimal InterestRate = 0.05m;
}
class Program
{
static void Main()
{
Console.WriteLine("Rate: " + Bank.InterestRate);
}
}Méthodes statiques
Une méthode static s’exécute sans instance. Vous l’appelez sur la classe. Elle ne peut pas utiliser les champs d’instance, car il n’existe aucun this.
using System;
class MathUtil
{
public static int Square(int x)
{
return x * x;
}
}
class Program
{
static void Main()
{
Console.WriteLine(MathUtil.Square(7));
}
}État partagé entre les instances
Comme un champ statique ne possède qu’une seule copie, chaque instance voit la même valeur. Cela est utile pour les compteurs et la configuration partagée.
using System;
class Robot
{
public static int Count;
public Robot()
{
Count++;
}
}
class Program
{
static void Main()
{
new Robot();
new Robot();
new Robot();
Console.WriteLine("Robots created: " + Robot.Count);
}
}Les méthodes statiques ne peuvent pas utiliser les données d’instance
Une méthode statique ne possède aucun this ; elle peut donc uniquement utiliser des paramètres, des variables locales et d’autres membres statiques.
using System;
class Calculator
{
public static int Add(int a, int b) => a + b;
public static int Multiply(int a, int b) => a * b;
}
class Program
{
static void Main()
{
Console.WriteLine(Calculator.Add(2, 3));
Console.WriteLine(Calculator.Multiply(4, 5));
}
}Mélanger statique et instance
Une classe peut contenir les deux types de membres. Les méthodes d’instance peuvent lire les membres statiques, mais les méthodes statiques ne peuvent pas lire les membres d’instance.
using System;
class Account
{
public static decimal Fee = 2m;
public decimal Balance;
public decimal NetBalance()
{
return Balance - Fee; // instance method can read static
}
}
class Program
{
static void Main()
{
var a = new Account { Balance = 100m };
Console.WriteLine("Net: " + a.NetBalance());
}
}Modèle des compteurs statiques
Attribuer à chaque nouvel objet un identifiant provenant d’un compteur statique est une utilisation classique des champs statiques.
using System;
class Ticket
{
private static int _next = 1;
public int Number;
public Ticket()
{
Number = _next++;
}
}
class Program
{
static void Main()
{
Console.WriteLine(new Ticket().Number);
Console.WriteLine(new Ticket().Number);
Console.WriteLine(new Ticket().Number);
}
}Méthodes utilitaires statiques
Les méthodes statiques sont idéales pour les opérations sans état qui dépendent uniquement de leurs entrées, comme les formateurs et les convertisseurs.
using System;
class Format
{
public static string Money(decimal amount)
{
return "$" + amount.ToString("0.00");
}
}
class Program
{
static void Main()
{
Console.WriteLine(Format.Money(12.5m));
}
}Appeler une méthode statique depuis une autre
Les méthodes statiques peuvent appeler librement d’autres méthodes statiques de la même classe, sans aucune instance.
using System;
class Geometry
{
public static double CircleArea(double r) => Math.PI * Square(r);
private static double Square(double x) => x * x;
}
class Program
{
static void Main()
{
Console.WriteLine(Geometry.CircleArea(2).ToString("0.00"));
}
}Les champs statiques persistent
Un champ statique conserve sa valeur pendant toute la durée de vie du programme, et pas seulement pour un objet. Utilisez-le pour les caches ou les totaux cumulés.
using System;
class Logger
{
public static int MessageCount;
public static void Log(string msg)
{
MessageCount++;
Console.WriteLine("[" + MessageCount + "] " + msg);
}
}
class Program
{
static void Main()
{
Logger.Log("start");
Logger.Log("working");
Logger.Log("done");
}
}Mise en pratique
Les membres statiques représentent les concepts communs à toute la classe : taux partagés, compteurs et méthodes utilitaires sans état ; les membres d’instance contiennent les données propres à chaque objet.
using System;
class Order
{
public static decimal TaxRate = 0.10m;
public decimal Subtotal;
public decimal Total() => Subtotal + Subtotal * TaxRate;
}
class Program
{
static void Main()
{
var o = new Order { Subtotal = 200m };
Console.WriteLine("Total: " + o.Total());
}
}Vérification rapide
Testez votre compréhension des membres statiques.
Récapitulatif
Les membres statiques appartiennent à la classe et possèdent une seule copie partagée ; les membres d’instance appartiennent à chaque objet. Les méthodes statiques ne possèdent aucun this et ne peuvent pas accéder aux données d’instance, mais le code d’instance peut lire les membres statiques. Utilisez les membres statiques pour les compteurs, la configuration partagée et les méthodes utilitaires sans état.
using System;
class Demo
{
public static int Shared;
public int Own;
public static void Bump() => Shared++;
}
class Program
{
static void Main()
{
Demo.Bump();
Demo.Bump();
Console.WriteLine(Demo.Shared);
}
}Questions Fréquemment Posées
La leçon « Méthodes et champs statiques » est-elle gratuite ?
Oui — le texte complet de « Méthodes et champs statiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Méthodes et champs statiques » ?
Définissez des membres qui appartiennent au type lui-même. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Méthodes et champs statiques » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Méthodes et champs statiques
- Classes statiques pour les utilitaires
- Constantes et champs readonly
- Conception statique ou par instance