如何在界面中避免'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' 的签名冲突。我知道它为什么会发生,但不知道如何在 正确架构和设计原则的背景下避免它 。
您可以在第一种方法中使用 Guid
而不是 string
,然后 Guid
变量解析为字符串。
您可以对guid和email使用相同的方法,并检查此方法中传递的参数类型(使用正则表达式或检查字符串是否包含'@'符号)并通过特定方式处理电子邮件和 guid。
为第一种和第三种方法设置不同的名称
如果你想要方法的名称相同,你应该选择第一个或第二个选项。
如果您在应用程序中将 guid 存储在字符串中,最好使用第二个选项。
如果使用什么类型不重要(Guid
或string
)那么第一个选项会更好(但这是我的意见)
我正在为 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' 的签名冲突。我知道它为什么会发生,但不知道如何在 正确架构和设计原则的背景下避免它 。
您可以在第一种方法中使用
Guid
而不是string
,然后Guid
变量解析为字符串。您可以对guid和email使用相同的方法,并检查此方法中传递的参数类型(使用正则表达式或检查字符串是否包含'@'符号)并通过特定方式处理电子邮件和 guid。
为第一种和第三种方法设置不同的名称
如果你想要方法的名称相同,你应该选择第一个或第二个选项。
如果您在应用程序中将 guid 存储在字符串中,最好使用第二个选项。
如果使用什么类型不重要(
Guid
或string
)那么第一个选项会更好(但这是我的意见)