关于c#:如何更改公共方法签名以及有哪些风险?

How to change a public method signature and what are the risks?

我有一个旧方法,很少被第三方客户机使用,我想更改它的签名(主要是重命名)。

我该怎么做?风险是什么?有什么真正的优势吗?

一个简单的例子:

1
2
3
4
5
6
7
Class Program
{
    public void OldMethodName(var oldVarName)
    {
        //Do something
    }
}

改为

1
2
3
4
5
6
7
Class Program    
{
    public void NewMethodName(var newVarName)
    {
        //Do the same thing
    }
}


当您的API处于公共用途时,您应该分两个阶段对其进行重构:

  • 发布两个API都可用的版本-此版本的API应使新方法可用,并拒绝使用旧方法。这将为您的客户机提供迁移时间。
  • 等待一段时间后,发布一个删除了不推荐方法的版本-如果可能,请与您的客户机协调此版本,以确保他们已使用新方法迁移到。

有关如何取消预测方法的信息,请参阅此问题解答。

除了修复当前或潜在的命名冲突之外,更改公共方法的签名没有任何好处。