c#中字段名称的过时处理



我一直在与过时的处理作斗争,我知道在c#中过时的用法是什么。但我的问题不是使用过时的是管理。

我有一个类,比如salestrationstep,它包含名称、描述和数量,如下所示:

public class salestransactionstep
{
string name;
string description;
int quantity;
}

我想将数量字段的数据类型更改为浮动。因为int字段不再满足我的要求。但有些客户可能使用int字段,但其他客户则不使用。所以,我不想更改字段,我添加了一个数据类型为浮动的新字段,并在旧字段中添加了过时的属性。

public class salestransactionstep
{
string name;
string description;
[Obsolete]
int quantity;
float quantity_float;
}

因此,一些老客户使用int字段,另一些则使用float字段。我使用SQL查询来获取数据,有时计算int字段以满足老客户的需求,有时计算float字段以满足新客户的需求。喜欢

select count(quantity) from salestransactionstep

select count(quantity_float) from salestransactionstep

但在我看来,我没有正确地管理这种用法。那么,我该如何管理这一点,正确处理过时的字段呢?

当前使用它的方式只会在尝试访问类的属性时在代码中触发警告。

如果你想触发一个错误,你可以这样做:

[Obsolete("Obsolete prop - Use quantity_float", true)]

如果您只想更改警告消息,请更改为false。

如果您只公开内部方法或web服务,请注意您的设置——但我尽量避免对现有合同进行更改,因为随着时间的推移,维护起来会变得一团糟。

考虑添加版本控制以获得更好的可读性、模块化、关注点分离等。

您还可以选择";遗留客户端";在准备好的时候使用新版本,这使得可以一起删除旧代码。

最新更新