Hallo Forum,
ich habe eine abstrakte Klasse in einem Projekt mit dem Namespace Core.
Dieses Projekt wird von einem anderen Projekt mit dem Namespace Core.Administration referenziert.
Im Core.Administration Projekt gibt es eine Klasse, die von der abstrakten Klasse ableiten soll aber ich kann sie dort nicht sehen.
Meine Frage ist daher, geht es, dass abstrakte Klassen in anderen Namespaces verwendet werden? Eigentlich sollte es doch gehen, oder nicht?
Ich denke mal dein Problem liegt bei den Zugriffsmodifizierern.
Ich beschütze das was am Wichtigsten ist!
Hallo tequila slammer,
natürlich kannst du auch von abstrakten Klassen aus anderen Namensräumen ableiten – sonst könnte ja keine einzige Klasse in deinen eigenen Namespaces von den Framework-Klassen erben.
Generell gilt: Damit du eine Klasse C
aus dem Namensraum N
aus dem Projekt P1
im Projekt P2
verwenden kannst, muss P2
das Projekt P1
referenzieren. Außerdem muss der Namesraum mit
using P1.N;
importiert werden (oder explizit P1.N.C
verwendet werden).
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
@Seraph2404: am Zugriff liegt es auch nicht.
@m0rius: Ich verwende lieber die vollen Namespaces als P1.N.C
Ich kann besser mit Beispielen arbeiten daher einmal das was ich habe
public abstract class MyAbstractClass
{
public abstract string Name { get; set; }
public abstract bool Save();
public abstract bool Update();
public abstract bool Delete();
}
In einer Klasse im selben Projekt wie die abstrakte Klasse funktioniert die Vererbung von dieser. 🤔
Hallo tequila slammer,
hast du das Projekt korrekt referenziert und die Namensräume in der erbenden Klasse importiert?
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
ja habe ich. Ich erstelle am We mal eine Solution an der man das Problem nachvollziehen kann.
In einer Klasse im selben Projekt wie die abstrakte Klasse funktioniert die Vererbung von dieser.
Dann machst du etwas falsch.
Schaue dir einmal an, welche Meldungen der Compiler ausspuckt, cleane das Projekt und prüfe, ob du wirklich exakt den Namespace eingebunden hast, in dem die Klasse definiert ist und ob du auch keine Versionsprobleme hast.
Ich habe den Fehler. Der Namespace des zweiten Projekts stimmte mit dem Namen der abstrakten Klasse überein. Bekommt die abstrakte Klasse einen anderen Namen gehts.