Wie viele Klassen können Sie in C # erben?
Wie viele Klassen Sie Erben von in .NET?
Gibt es mehrere backend C# - Dateien, die ich freigeben möchten, separate statische Methoden, aber Sie sind alle in verschiedenen Klassen. Gibt es eine Möglichkeit zu Erben mehrere Klassen?
Beispiel-code wäre sehr geschätzt werden.
Kommentar zu dem Problem
Wie ist der code, den Sie haben, strukturiert? Sind Sie versuchen, rufen Sie die statische Methoden einer einzelnen Klasse, oder versuchen Sie, etwas anderes zu tun? Wenn Sie versuchen, eine Gruppe, die eine Reihe statischer Methoden zusammen, Schnittstellen helfen Ihnen nicht.
Da die Methoden statisch sind (asuming öffentlich) Sie können Sie von jeder Klasse zu jeder Zeit, es muss nicht "Erben" ein Objekt nutzen zu können, ist es statische Methoden.
@zach ich denke, dass die meisten davon fallen in die Kategorie der Nützlichkeit von statischen Methoden, welche verwendet werden, um mehrere verschiedene code-behind-Klassen. Ich bin mit den gängigen Methoden viel die gleiche Weise, dass ich die Klasse Math.
one one one one
InformationsquelleAutor der Frage locoboy | 2010-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
C# keine Mehrfachvererbung (d.h. eine Klasse erbt von mehreren Klassen). Sie können jedoch mehrere Schnittstellen zu implementieren, die in einer einzelnen Klasse.
Soweit Verkettung von vererbten Klassen, gibt es nicht eine Grenze per se. Nur im Kopf behalten, die Komplexität, die Sie einführen werden, um Ihr system. Bei der Verwendung von Vererbung, stellen Sie sicher, Sie verwenden es in einer "ist" - Szenario. Ein cheeta ist ein Tier. Ein mazda ist ein Auto. Ansonsten, dein Erbe ist eng Paare, die Ihre Klassen mit einem design, das wird viel schwieriger zu pflegen.
Wenn Sie statisch sind "utility" - Methoden nur aufrufen, Sie direkt ohne Erben. Es sei denn, diese Methoden gehören zu der Einheit, die Sie erstellen, sollten Sie nicht verwenden die Vererbung.
InformationsquelleAutor der Antwort Jordan Parmer
Können Sie nur Erben von einer einzigen Klasse. Es ist jedoch möglich, mehrere Schnittstellen zu implementieren.
InformationsquelleAutor der Antwort Tom Vervoort
Lassen Sie uns sagen, Sie haben Utils.cs:
und es ist ein DB.cs verwendet Log-Methode und die in dem gleichen Namensraum mit der Utils-Klasse:
Da-Log-Methode ist statisch, Sie brauchen nicht zu initialisieren Utils-Klasse um diese Methode zu verwenden.
Als Fazit, Sie können nicht verwenden Sie Mehrfachvererbung, sondern auch für Ihren Fall, Sie nicht auch brauchen. Sie können statische Methoden ohne Mehrfachvererbung.
InformationsquelleAutor der Antwort Zafer
Können Sie nicht tun Mehrfachvererbung in C#.
Könnte man das gleiche zu erreichen endet mit Schnittstellen, wenn es nicht für die Tatsache, dass Sie möchten, zu teilen, statische Methoden.
InformationsquelleAutor der Antwort ChrisF
Können Sie Erben in der "Kette", wie viele Klassen, die Sie wollen, aber die Mehrfachvererbung ist nicht erlaubt .NET-Sprachen.
Ihre einzige option für die mehrfache Vererbung .NET-Schnittstellen.
InformationsquelleAutor der Antwort Claudio Redi
Solange die Zugriffsmethoden entsprechend festgelegt sind statische Methoden sind mehr oder weniger geteilt sowieso (in der Tat, Sie verwenden das Schlüsselwort Shared in VB); es macht keinen Unterschied, welche Klasse Sie sind, weil Sie getrennt sind von jedem instanziierten Objekt.
Aufruf einer statischen Methode, die Sie Vorwort es ist mit dem Namen der Klasse, auf dem es deklariert ist:
Den accessor muss
public
oder kann es seininternal
wenn der Aufrufer und Methode sind in der gleichen Projekt - /Montage.Wenn Ihr Ziel ist es lediglich zu einem einzigen Punkt des Zugangs für die statischen Methoden, erstellen Sie eine Klasse, leitet die Aufrufe entsprechend:
Diese Weise können Sie Zugriff auf alles, was durch
SharedMethods.GetName()
etc.InformationsquelleAutor der Antwort Jay
In .NET können Sie nur Erben von einer Basisklasse, aber mehrere interfaces implementieren.
Für eine ASP.NET spezifische situation, wie Sie sind, in der Sie Folgendes tun können:
hast und deine webforms Erben von BasePage im codebehind.
Weiteren, oft gefolgt Kurs zu machen, um eine eigene statische Klasse, die alle statischen Methoden auf. Werden Sie sicher, dass, wenn Sie arbeiten mit ASP.NET bestimmte Dinge, die als Präfix mit HttpContext.Aktuelle.
Beispiel:
InformationsquelleAutor der Antwort XIII
Kann man nicht Erben von mehreren Klassen. Jedoch, Sie können string zusammen-Klassen Erben aus der jeweils anderen.
Klasse Mitarbeiter
Class Manager : Employee
Klasse RegionalDirector : Manager
Also, wenn Sie haben eine ganze Benennungs - /Mitarbeiter-ID/Kontakt info-Regelung geht auf in Ihrem Programm, Sie können Erben, die von Angestellten. Dann, aufwändig mit Informationen für den manager und dann auch mehr info für die regional-Direktor.
InformationsquelleAutor der Antwort user435094