Can I create anonymous implementations of an interface , in a way similar to the way
delegate() { // type impl here , but not implementing any interface}
Something on the lines of
new IInterface() { // interface methods impl here }
The situations where I see them to be useful are for specifying method parameters which are interface types, and where creating a class type is too much code.
For example , consider like this :
public void RunTest()
{
Cleanup(delegate() { return "hello from anonymous type"; });
}
private void Cleanup(GetString obj)
{
Console.WriteLine("str from delegate " + obj());
}
delegate string GetString();
how would this be achieved if in the above code , the method Cleanup had an interface as a parameter , without writing a class definition ? ( I think Java allows expressions like new Interface() ... )
You may take a look at impromptu-interface. Allow you to wrap any object with a Duck Typing Interface.
There is no standard language syntax for that. To create an implementation of IInterface
on the fly you could use Reflection.Emit and maybe something involving generics and/or Action<...>
/Func<...>
(with or without Expression
), but it is a non-trivial amount of work.
Essentially, this is what many of the mocking frameworks do. Look to them, perhaps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With