我一直在与过时的处理作斗争,我知道在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服务,请注意您的设置——但我尽量避免对现有合同进行更改,因为随着时间的推移,维护起来会变得一团糟。
考虑添加版本控制以获得更好的可读性、模块化、关注点分离等。
您还可以选择";遗留客户端";在准备好的时候使用新版本,这使得可以一起删除旧代码。