我有许多表示业务事务调用的类:执行适当的存储过程。

现在看起来像这样:

public static class Request
{
    public static void Approve(..) {
        using(connection) {
            command.Text = "EXEC [Approve] ,,"]
            command.ExecuteNonQuery();
        }
    }
}

我想让它们更线程安全:
public class Request {
    public static void Approve(..) {
        new Request().Approve(..);
    }

    internal void Approve(..) {
        using(connection) {
            command.Text = "EXEC [Approve] ,,"]
            command.ExecuteNonQuery();
        }
    }
}

但是收到下一条错误消息:



如何强制标记我正在从静态调用非静态实例方法?

或者我不能在不重命名其中一种方法的情况下做到这一点?或者将静态方法移动到另一个类等

最佳答案

如果您从实例(例如 requestVar.Approve() )进行调用,则不,您必须重命名它。然而,可以使用 Request.Approve() 调用静态。

关于c# - 在 C# 中编写静态和非静态方法时,如何避免 'call is ambiguous...' 错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1556459/

10-17 01:15