Question

Pourquoi ne puis-je pas créer une classe dans VB.NET dont hérite System.IO.Directory ? Selon Lutz Roeder, il n’est pas déclaré comme Inhéritable !

Je souhaite créer une classe d'utilitaire qui ajoute des fonctionnalités à la classe Directory . Par exemple, je souhaite ajouter une fonction Directory.Move .

S'il vous plaît aviser et je vous enverrai un pack de six. OK tant pis, je ne vous envoie rien, mais si vous venez au bar ce soir, je vous brancherai et vous battrai à la piscine.

Était-ce utile?

La solution

À partir des métadonnées de .NET

namespace System.IO
{
    // Summary:
    //     Exposes static methods for creating, moving, and enumerating through directories
    //     and subdirectories. This class cannot be inherited.
    [ComVisible(true)]
    public static class Directory

Vous ne pouvez pas hériter d'une classe statique.

Autres conseils

Utilisez-vous C # 3.0 VB.NET 2008? Vous pouvez ensuite ajouter un Méthode d'extension

Si vous utilisez la classe DirectoryInfo, vous aurez accès à une fonction MoveTo.

EDIT: je vais me corriger ... La classe Directory statique a déjà une méthode Move.

Je suppose que Reflector ne capte pas correctement l'attribut scellé pour VB (ou ne l'affiche peut-être pas correctement). Si vous regardez l’IL, il est scellé:

class public abstrait auto ansi scellé dans le répertoire beforefieldinit

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top