Greetings everyone...
If I have the following interface:
interface IMyInterface
{
int property { get; set; }
}
And the following implementation:
class MyClass : IMyInterface
{
// anything
}
How can I hide the set
method of property from the instances of MyClass
... In other words, I don't want the set
method of property
to be public, is that possible?
It would be easy to do with abstract class:
abstract class IMyInterface
{
int property { get; protected set; }
}
Then I could only set
the property
within the class that implements the abstract class above...
If you use the following interface the set method will be unavailable when classes are manipulated via the interface:
interface IMyInterface
{
int property { get; }
}
You could then implement the class like this:
class MyClass : IMyInterface
{
int property { get; protected set; }
}
Wouldn't that hide the "property" from the interface?
It will remove the setter from the interface, you can still read the property.
The setter in the implemented class will not be visible as it is nit entered in th interface. The setter will be available within the implemented class.