Is there any way to implement an interface explicitly using an automatic property? For instance, consider this code:
namespace AutoProperties
{
interface IMyInterface
{
bool MyBoolOnlyGet { get; }
}
class MyClass : IMyInterface
{
static void Main(){}
public bool MyBoolOnlyGet { get; private set; } // line 1
//bool IMyInterface.MyBoolOnlyGet { get; private set; } // line 2
}
}
This code compiles. However, if you replace line 1 with line 2 it does not compile.
(It’s not that I need to get line 2 working – I’m just curious.)
Indeed, that particular arrangement (explicit implementation of a get-only interface property by an automatically implemented property) isn’t supported by the language. So either do it manually (with a field), or write a private auto-implemented prop, and proxy to it. But to be honest, by the time you’ve done that you might as well have used a field…
or: