一个概念性的问题:
我正在创建我的自定义结构,在Vector3的静脉中(3个int值),我正在重载标准运算符(+, - ,*,/,==等...)
当我正在构建一个供外部使用的库时,我试图遵循FxCop规则.因此,他们建议使用执行相同功能的方法.
例如..Add(),. Subtract()等...
为了节省代码重复,这些方法之一(运算符重载或实际方法)将调用另一个方法.
我的问题是,哪个应该叫哪个?
是吗(这只是一个示例代码):
一个)
public static MyStruct operator +(MyStruct struc1, MyStruct struct2)
{
return struc1.Add(struct2);
}
public MyStruct Add(MyStruct other)
{
return new MyStruct (
this.X + other.X,
this.Y + other.Y,
this.Z + other.Z);
}
Run Code Online (Sandbox Code Playgroud)
要么:
B)
public static MyStruct operator +(MyStruct struc1, MyStruct struct2)
{
return new MyStruct (
struct1.X + struct2.X,
struct1.Y + struct2.Y,
struct1.Z + struct2.Z);
}
public MyStruct Add(MyStruct other)
{
return this + other;
}
Run Code Online (Sandbox Code Playgroud)
我真的不确定哪一个更好,但我正在寻找一些意见:)
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |