0
我想在派生类中使用基类属性。另外,我必须从外部传递属性值。我认为以下两种方法之一:从外部设置基类属性
方法1:
class Mydata
{
}
class Converter1:Converter
{
void Converter1(Mydata data1)
{
data = data1;
}
public void Convert()
{
// USING "data" here
}
}
class Converter2 : Converter
{
void Converter2(Mydata data2)
{
data = data1;
}
public void Convert()
{
//USING "data" here
}
}
当创建我可以创建类似以下对象:
Mydata data1 =new Mydata()
Mydata data2 =new Mydata()
Coverter cObj= Converter1(data1)
cObj.Convert()
Coverter cObj1= Converter2(data2)
cObj1.Convert();
方法2:
class Mydata
{
}
class Covnerter1:Converter
{
public void Convert()
{
// USING "data" here
}
}
class Converter2 : Converter
{
public void Convert()
{
// USING "data" here
}
}
在创建对象时,我可以像下面那样创建对象,并在基类中设置属性值。
Mydata data1 =new Mydata()
Mydata data2 =new Mydata()
Coverter cObj= Converter1()
cObj.data = data1;
cObj.Convert()
Coverter cObj1= Converter2()
cObj1.data =data2
cObj1.Convert()
哪种方法更好?还是有其他更好的方法?
什么是您的“更好”的标准?更可读? (请注意,你的示例有点奇怪,因为人们可能期望'Convert'方法至少返回转换结果,并且可能需要一些输入...) –
我会将数据作为参数传递给convert方法。将它传递给构造函数意味着转换器是一种用法,如果您无法将调用中的数据更改为Convert,它将变成一个非常僵硬的对象。 – stevepkr84
第二种方法绝对不正确(IMO),因为它允许用户调用'Convert'方法而不设置'data'属性,这很可能导致错误。 – dcastro