Junior
Qual è la differenza tra un metodo statico e un metodo di istanza?
sobes.tech AI
Risposta dell'AI
Un metodo statico appartiene alla classe e viene chiamato senza creare un'istanza dell'oggetto. Il metodo di istanza appartiene a un'istanza della classe e viene chiamato tramite l'oggetto creato.
Principali differenze:
| Criterio | Metodo statico | Metodo di istanza |
|---|---|---|
| Appartenenza | Alla classe | All'istanza della classe |
| Chiamata | Tramite il nome della classe | Tramite l'oggetto dell'istanza |
| Accesso ai dati | Solo ai membri statici della classe | Ai membri statici e ai dati dell'istanza |
| Parola chiave | static |
Assente (di default) |
using System;
public class MyClass
{
// Campo statico
public static string StaticData = "This is static data";
// Campo di istanza
public string InstanceData = "This is instance data";
// Metodo statico
public static void StaticMethod()
{
Console.WriteLine("Metodo statico chiamato.");
Console.WriteLine(StaticData); // Accesso al campo statico
// Console.WriteLine(InstanceData); // Errore: nessun accesso al campo di istanza
}
// Metodo di istanza
public void InstanceMethod()
{
Console.WriteLine("Metodo di istanza chiamato.");
Console.WriteLine(StaticData); // Accesso al campo statico
Console.WriteLine(InstanceData); // Accesso al campo di istanza
}
}
public class Program
{
public static void Main(string[] args)
{
// Chiamata al metodo statico tramite il nome della classe
MyClass.StaticMethod();
// Creazione di un'istanza della classe
MyClass myObject = new MyClass();
// Chiamata al metodo di istanza tramite l'oggetto
myObject.InstanceMethod();
}
}