Suppose class A as:
public class A
{
private string _str;
private int _int;
public A(string str)
{
this._str = str;
}
public A(int num)
{
this._int = num;
}
public int Num
{
get
{
return this._int;
}
}
public string Str
{
get
{
return this._str;
}
}
}
I want to hide Str property when i construct class A as
new A(2)
and want to hide Num property when i construct class A as
new A("car").
What should i do?
That isn’t possible with a single class. An
Ais anA, and has the same properties – regardless of how it is constructed.You could have 2 subclasses of
abstract A, and a factory method…But : the caller will not know about the value unless they cast it.