Zum Inhalt springen

[C#] IDisposable wird nicht implementiert


mustiwebp

Empfohlene Beiträge

Hi,

Ich habe folgendes Problem:

Ich nutze Microsoft Visual C# 2008 und bei mir kommt folgende Fehlermeldung:

Fehler 1 "Interface.benutzen" implementiert den Schnittstellenmember "System.IDisposable.Dispose()" nicht. C:\Users\Musti_2.Musti-PC\Documents\Visual Studio 2008\Projects\using.cs 63 11 Interface

Der Quellcode der Klassen lautet:


    class set_beispiel 

    {

        private int _zahl;

        public int zahl 

        {

            get 

            {

                return _zahl;

            }

            set 

            {

                _zahl = value * 2;

            }

        }

        public void using_test()

        { 

            using (benutzen main = new benutzen())  

            {

                Console.WriteLine(main.zahl);

                Console.ReadLine();

            }

        }

    }

    class benutzen : IDisposable

    {

        public int zahl = 2;

    }

Link zu diesem Kommentar
Auf anderen Seiten teilen


         public void using_test()

        { 

            using (benutzen main = new benutzen())  

            {

                Console.WriteLine(main.zahl);

                Console.ReadLine();

            }

        }

    }

    class benutzen : IDisposable

    {

        public int zahl = 2;

    }

Deine Klasse "benutzen" implementiert das Interface IDisposable.

Also musst du auch alle Member dieses Interfaces in der Klasse

definieren.

IDisposable hat nur eins: die Methode Dispose(), welche dazu benutzt werden sollte Speicher auf dem Heap freizugeben, wenn ein Objekt zerstört wird.

Diese Methode wird im using-Block benötigt.

Davon mal abgesehen mach das using da wenig sinn, weil die Klasse

"benutzten" nur ein int enthält und keinen Datentyp der dynamisch verwealtet wird.;)

LG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Desweiteren solltest du dich an die Stilkonvetionen halten:


    class SetBeispiel // Klassen groß!

    {

        private int _zahl;

        public int Zahl  // Public_property groß!

        {

            get 

            {

                return _zahl;

            }

            set 

            {

                _zahl = value * 2;

            }

        }

        public void UsingTest() // Public-Methode groß, ohne _

        { 

            using (Benutzen main = new Benutzen())  

            {

                Console.WriteLine(main.Zahl);

                Console.ReadLine();

            }

        }

    }

    class Benutzen : IDisposable // Klassen groß!

    {

        public int Zahl { get; set; } // Public bevorzugt Properties

        public Benutzen() { Zahl = 2; }

    }


Grüße, JasonDelife.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Desweiteren solltest du dich an die Stilkonvetionen halten:


class SetBeispiel // Klassen groß!

    {

        private int m_zahl; [COLOR="Red"]// Wenn dann m_[/COLOR]

        public int Zahl  // Public_property groß!

        {

            get 

            {

                return [COLOR="Red"]this.[/COLOR]m_zahl; [COLOR="Red"]// der Schönheit halber.[/COLOR]

            }

            set [COLOR="Green"]// Wenn ich so eine Klasse benutzen würde, würd ich mich wundern, warum immer meine Werte doppelt so groß sind[/COLOR]

            {

                [COLOR="Red"]this.[/COLOR]m_zahl = value * 2;[COLOR="Red"]// der Schönheit halber.[/COLOR]

            }

        }

        public void UsingTest() // Public-Methode groß, ohne _ [COLOR="Red"]- public Methoden müssen nicht groß sein.[/COLOR]

        { 

            using (Benutzen main = new Benutzen())  

            {

                Console.WriteLine(main.Zahl);

                Console.ReadLine();

            }

        }

    }

    class Benutzen : IDisposable // Klassen groß!

    {

        public int Zahl { get; set; } // Public bevorzugt Properties

        public Benutzen() { Zahl = 2; }

        public void Dispose() { } [COLOR="Red"]// ...[/COLOR]

    }


Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Vielen Dank an alle!

Davon mal abgesehen mach das using da wenig sinn, weil die Klasse

"benutzten" nur ein int enthält und keinen Datentyp der dynamisch verwealtet wird.;)

Ich weiß, dass "using" in diesem Kontext nicht sinnvoll ist! Ich wollte nur die Synatx lernen! :-)

Mit freundlichen Grüßen

mustiwebp

Bearbeitet von mustiwebp
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...