2008-09-25 2 views
2

Pourquoi ne puis-je pas créer un class en VB.NET que inheritsSystem.IO.Directory? Selon Lutz Roeder, c'est pas déclaré comme NotInheritable! Je veux créer un utility class qui ajoute des fonctionnalités au Directory class. Par exemple, je veux ajouter une fonction Directory.Move.Pourquoi ne puis-je pas hériter de IO.Directory?

S'il vous plaît aviser et je vous enverrai un six pack. OK, je ne t'enverrai rien, mais si tu viens au bar ce soir, je vais te raccrocher et te battre dans la piscine.

+0

Merci Jeff Atwood pour éditer mon post et l'ajout d'étiquette VB.NET. Pas étonnant que vous ne puissiez plus bloguer! –

+0

Lol, il a changé de contenu. J'ai ajouté l'étiquette :) –

Répondre

11

à partir des données Meta 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.

5

Utilisez-vous C# 3.0 VB.NET 2008 - alors vous pouvez ajouter un Extension Method

+0

Considérant qu'il a spécifié VB.NET, je parie qu'il n'utilise pas C# ... – CodeRedick

+0

Désolé, VB.NET les a aussi –

+0

Je sais, mais quel genre de programmeur ne discute pas sémantique ? ;) – CodeRedick

1

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

EDIT: Je vais corriger moi-même ... La classe Directory statique a déjà une méthode Move.

+0

Je m'en fous. J'essaie de renommer un répertoire, pas le déplacer. –

+0

Ne pas déplacer le répertoire vers le nouveau nom le renommer efficacement? – Rob

0

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

public class abstrait auto ansi scellé beforefieldinit Répertoire

Questions connexes