如何在界面中避免'the same signature error'?

How to avoid 'the same signature error' in interface?

我正在为 n 层应用程序建模域接口并准备接口 ICustomerRepository。 在里面我有很多签名,其中两个面临 'same signature' 错误。

    Customer GetCustomer(string guid, CustomerInformationLevel informationLevel
        = CustomerInformationLevel.AccountInformation);

    Customer GetCustomer(string firstName, string lastName, string middleName,
        CustomerInformationLevel informationLevel
            = CustomerInformationLevel.AccountInformation);

    Customer GetCustomer(string email, CustomerInformationLevel informationLevel
        = CustomerInformationLevel.AccountInformation);

string 'guid' 和 'email' 的签名冲突。我知道它为什么会发生,但不知道如何在 正确架构和设计原则的背景下避免它

  1. 您可以在第一种方法中使用 Guid 而不是 string,然后 Guid 变量解析为字符串。

  2. 您可以对guid和email使用相同的方法,并检查此方法中传递的参数类型(使用正则表达式或检查字符串是否包含'@'符号)并通过特定方式处理电子邮件和 guid。

  3. 为第一种和第三种方法设置不同的名称

如果你想要方法的名称相同,你应该选择第一个或第二个选项。

  • 如果您在应用程序中将 guid 存储在字符串中,最好使用第二个选项。

  • 如果使用什么类型不重要(Guidstring)那么第一个选项会更好(但这是我的意见)