Namespaces in C# und VB.NET

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Namespaces in C# und VB.NET

    Hallo!

    Ich habe das Problem, dass namespaces in C# anscheinend anders gehandhabt werden als in VB.NET.

    Was in VB.NET geht...

    Quellcode

    1. ...
    2. Imports System.Net
    3. ...
    4. ...
    5. Dim listener = new Sockets.Socket(...)
    6. ...


    ...geht in C# nicht.

    Quellcode

    1. ...
    2. using System.Net
    3. ...
    4. ...
    5. System.Net.Sockets.Socket listener = new System.Net.Sockets.Socket(...);
    6. ...

    Stattdessen muss ich den gesamten namespace für "Sockets" angeben, obwohl der übergeordnete namespace "Net" schon importiert wurde.

    Einen Workaround hätte ich zwar schon gefunden, aber diese Lösung gefällt mir garnicht:

    Quellcode

    1. ...
    2. using Sockets = System.Net.Sockets
    3. ...
    4. ...
    5. Sockets.Socket listener = new Sockets.Socket(...);
    6. ...


    Mir ist klar, dass ich einfach "System.Net.Sockets" importieren kann, aber manchmal möchte ich wissen, aus welchem namespace eine Funktion, ein Objekt, usw. stammt.

    Gibt es die Möglichkeit, dieses Verhalten zu ändern?
  • Puh, hab mir das grad mal angeschaut. Ein wirklich komisches Phänomen.

    Ich hab erst an eventueller Mehrdeutigkeit gedacht, aber irgendwie liegt das hier nicht vor - oder mir fällt sie nicht auf.
    Mir ist auch aufgefallen, dass der Namespace System.Net genauso reagiert. Wenn man using System angibt, muss man, um in den Namespace Net zu gelangen System.Net benutzen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Blue ()