Pourquoi ne puis-je pas hériter de IO.Directory?
-
02-07-2019 - |
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.
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