Почему я не могу унаследовать IO.Directory? - PullRequest
2 голосов
/ 26 сентября 2008

Почему я не могу создать class в VB.NET, что inherits System.IO.Directory? По словам Лутца Редера, это не , объявленное как NotInheritable!

Я хочу создать utility class, который добавляет функциональность к Directory class. Например, я хочу добавить функцию Directory.Move.

Пожалуйста, сообщите, и я вышлю вам шесть пачек. Хорошо, не бери в голову, я тебе ничего не посылаю, но если ты придешь сегодня вечером в бар, я тебя подцеплю, а потом побью в бассейне.

Ответы [ 4 ]

11 голосов
/ 26 сентября 2008

Из метаданных .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

Вы не можете наследовать от статического класса.

5 голосов
/ 26 сентября 2008

Используете ли вы C # 3.0 VB.NET 2008 - тогда вы можете добавить метод расширения

1 голос
/ 26 сентября 2008

Если вы используете класс DirectoryInfo, у вас будет доступ к функции MoveTo.

РЕДАКТИРОВАТЬ: Я исправлю себя ... Статический класс Directory уже имеет метод Move.

0 голосов
/ 26 сентября 2008

Я полагаю, что Reflector неправильно выбирает запечатанный атрибут для VB (или, возможно, просто неправильно отображает его). Если вы посмотрите на IL, он запечатан:

класс публичных абстрактных авто ANSI запечатанный beforefieldinit Справочник

...