If you don't explicitly include a constructor C# will automatically provide a default constructor that takes no arguments. (See
Using Constructors[
^])
There is no problem implementing IDisposable on a class that contains only the default constructor.
It is also possible to explicitly define the default constructor and mark it as private (preventing instantiation from outside of the class itself). Even in this case it is still perfectly OK to implement the IDisposable interface, but you will have to be aware of where you are instantiating your class from and who is responsible for calling Dispose(). You may find you have to call it manually rather than using the usual 'using' statement.