Question

Why can't I create a class in VB.NET that inherits System.IO.Directory? According to Lutz Roeder, it is not declared as NotInheritable!

I want to create a utility class that adds functionality to the Directory class. For instance, I want to add a Directory.Move function.

Please advise and I will send you a six pack. OK nevermind I'm not sending you anything but if you come to the bar tonight I will hook you up and then beat you in pool.

Was it helpful?

Solution

From the Meta Data of .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

You cannot inherit from a Static Class.

OTHER TIPS

Are you using C# 3.0 VB.NET 2008 -- then you could add an Extension Method

If you use the DirectoryInfo class, you will have access to a MoveTo function.

EDIT: I'll correct myself... The static Directory class already has a Move method.

I'd guess that Reflector isn't picking up the sealed attribute correctly for VB (or perhaps just not displaying it properly). If you look at the IL, it is sealed:

class public abstract auto ansi sealed beforefieldinit Directory

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top