[Mono-dev] Constructor implementation obligation via interface?
Jb Evain
mono at evain.net
Wed May 24 08:18:17 EDT 2006
Hey,
Kamil Skalski wrote:
> There is a slight problem. In C# empty constructors are added
> automatically, so you can't define a class without empty constructor.
The default constructor is added only if there is not valued constructor
defined. So it's possible to define a class without the default constructor.
> 2006/5/24, Ympostor <ympostor at clix.pt>:
>> I have a question about C# 2.0:
>>
>> If I want the compiler to show an error if a class A does not implement
>> the function void B(), I can make an interface that contains this method
>> and make class A inherit from that interface.
>>
>> But, how can I do it if I want the compiler to show an error if class A
>> doesn't have an empty constructor. Can this be controlled statically?
That's tricky/ugly but you can use generics to check this:
interface IMustHaveDefaultParameter<T> where T : new () {}
class MyClass : IMustHaveDefaultParameter<MyClass> {
public MyClass ()
{
}
}
Jb
More information about the Mono-devel-list
mailing list