Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ μιας στατικής μεθόδου και μιας μεθόδου στιγμιότυπου;

sobes.tech AI

Απάντηση από AI

Μια στατική μέθοδος ανήκει στην κλάση και καλείται χωρίς να δημιουργηθεί ένα αντικείμενο. Η μέθοδος της στιγμής ανήκει σε ένα στιγμιότυπο της κλάσης και καλείται μέσω του δημιουργημένου αντικειμένου.

Βασικές διαφορές:

Κριτήριο Στατική μέθοδος Μέθοδος στιγμής
Ανήκει Στην κλάση Στο στιγμιότυπο της κλάσης
Κλήση Μέσω του ονόματος της κλάσης Μέσω του αντικειμένου της στιγμής
Πρόσβαση σε δεδομένα Μόνο στα στατικά μέλη της κλάσης Στα στατικά μέλη και στα δεδομένα του στιγμιότυπου
Λέξη-κλειδί static Απουσιάζει (προεπιλογή)
using System;

public class MyClass
{
    // Στατικό πεδίο
    public static string StaticData = "This is static data";

    // Πεδίο στιγμής
    public string InstanceData = "This is instance data";

    // Στατική μέθοδος
    public static void StaticMethod()
    {
        Console.WriteLine("Κλήθηκε η στατική μέθοδος.");
        Console.WriteLine(StaticData); // Πρόσβαση στο στατικό πεδίο
        // Console.WriteLine(InstanceData); // Σφάλμα: δεν υπάρχει πρόσβαση στο πεδίο στιγμής
    }

    // Μέθοδος στιγμής
    public void InstanceMethod()
    {
        Console.WriteLine("Κλήθηκε η μέθοδος στιγμής.");
        Console.WriteLine(StaticData); // Πρόσβαση στο στατικό πεδίο
        Console.WriteLine(InstanceData); // Πρόσβαση στο πεδίο στιγμής
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Κλήση της στατικής μεθόδου μέσω του ονόματος της κλάσης
        MyClass.StaticMethod();

        // Δημιουργία στιγμιότυπου της κλάσης
        MyClass myObject = new MyClass();

        // Κλήση της μεθόδου στιγμής μέσω του αντικειμένου
        myObject.InstanceMethod();
    }
}