Почему я не могу унаследовать IO.Directory?
Почему я не могу создать class
в VB.NET
тот inherits
System.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, он запечатан:
класс публичный аннотация авто анси