2016-03-20 10 views
1

Ich wurde auf einem Projekt (C# basiert) zugewiesen, um zu arbeiten, und ich fand, dass es eine Klasse und eine Schnittstelle mit demselben Namen im selben Namensraum [Klasse: Zahlung, Schnittstelle: Zahlung] gibt. Wenn ich die Lösung erstelle, bekomme ich einen Fehler, der nicht erlaubt ist.Kann ich eine Klasse und eine Schnittstelle mit demselben Namen im selben Namespace haben?

Das Umbenennen eines davon wirkt sich auf viele andere Bereiche in der Lösung aus. Eigentlich weiß ich nicht, wie es funktionierte !!

Irgendwelche Ideen?

Danke,

Antwort

5

Es ist nicht möglich, zwei Arten mit dem gleichen Namen unter dem gleichen Namensraum zu haben (dies ist ein Grund, warum Namespaces nützlich ist).

Eine gute Konvention ist es, den Brief I vor Interface-Namen haben, finden Sie unter: IEnumerable, ISerializable ...

Wenn Sie die identischen Namen halten müssen, können Sie die namespace einer der Typen ändern und die Änderung using namespace Erklärung entsprechend.

+0

Beachten Sie, dass, wenn Sie Namespaces * benötigen, um Namenskonflikte zu vermeiden, Ihre Namen möglicherweise schlecht sind. – Joey

+0

Absolut, ich sehe keinen Grund, den gleichen Typnamen zu haben, besonders für eine Klasse und eine Schnittstelle. – Ofiris

+0

Ich war auch mit der Namensgebung verwirrt, aber ich werde den Namen der Schnittstelle in IPayment ändern. und ändere alle betroffenen Bereiche. Danke vielmals –

Verwandte Themen