Почему я не могу унаследовать IO.Directory?

Почему я не могу создать class в VB.NET тот inheritsSystem.IO.Directory? Согласно Lutz Roeder, это не объявлено как NotInheritable!

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

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

4 ответа

Решение

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

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

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

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

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

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

класс публичный аннотация авто анси

Другие вопросы по тегам