[Mono-dev] Re: Constructor implementation obligation via interface?
dwaite at gmail.com
Wed May 24 19:22:02 EDT 2006
Yes, you would want a factory (creation pattern) - a class to create
the class you want. Then it can have an interface which takes whatever
arguments are appropriate, and returns whatever implementation needed.
On 5/24/06, Robert Jordan <robertj at gmx.net> wrote:
> Ympostor wrote:
> > Kamil Skalski escribió:
> >> There is a slight problem. In C# empty constructors are added
> >> automatically, so you can't define a class without empty constructor.
> >> What you can do is to define a class with private empty constructor,
> >> which will prevent user from instanciating it directly. I guess there
> >> is not way to forbid this.
> > Thanks for your comment.
> > But sorry because I think I haven't understood you completely.
> > You say I can't define a class without empty constructor? That's not
> > true. When you create an empty Console application in Visual Studio,
> > there is a "class Program" that contains an static method but does not
> > have any constructor.
> It has an implicit default ctor.
> > If you were trying to say that all classes, at the compiler level,
> > contain an empty constructor, then ok; but what I want to do is to force
> > a class to have a public empty constructor, and, if it doesn't have it,
> > have the compiler to warn me because of the semantic requisite.
> > Is there a way to achieve this?
> No, not directly. If you really feel like you'd need this
> semantic sugar, you may provide a creator for the class:
> interface ICreator
> Foo CreateFoo ();
> class Foo
> public Foo ()
> class FooCreator : ICreator
> public Foo CreateFoo()
> return new Foo ();
> Search the Web for "C# factory pattern".
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
More information about the Mono-devel-list