我的界面有5种方法。
public interface IPhoneAccountTransfer
{
BalanceInfo[] GetInmateAccountBalance();
AuthorizationCallConfirmation GetAuthorizeCallResult();
ChargeAuthorizationConfirmation CommitChargeAuthorization(string authCode);
ChargeAuthorizationConfirmation CancelBalanceTransfer(string authorizationToken);
VerifyAuthorizationConfirmation VerifyAuthorization();
}
问题是我有不同的电话帐户转帐供应商。现在在我的方法中,返回类型与一个第三方相关联。
例如。
public partial class BalanceInfo
{
private BalanceType typeField;
private decimal amountField;
public BalanceType Type
{
get
{
return this.typeField;
}
set
{
this.typeField = value;
}
}
和
public enum BalanceType
{
Available,
Phone,
Commissary,
Account,
Debt,
Held,
}
说我想保留五种实施方法。我可以使方法通用吗?
答案 0 :(得分:0)
创建自己的自定义返回类型:
public interface IPhoneAccountTransfer
{
YourCustomBalanceInfo[] GetInmateAccountBalance();
YourCustomAuthorizationCallConfirmation GetAuthorizeCallResult();
YourCustomChargeAuthorizationConfirmation CommitChargeAuthorization(string authCode);
YourCustomChargeAuthorizationConfirmation CancelBalanceTransfer(string authorizationToken);
YourCustomVerifyAuthorizationConfirmation VerifyAuthorization();
}
将第三方回复转换为您自己的已知类型。
这是一个实施示例:
public YourCustomVerifyAuthorizationConfirmation VerifyAuthorization()
{
VerifyAuthorizationConfirmation res = DoLogic();
YourCustomVerifyAuthorizationConfirmation yourWrappedRes = MapResponse(res);
return yourWrappedRes;
}
答案 1 :(得分:0)
我可以使方法通用吗?
当然 - 但是你想要每个返回类型是通用的吗?如果是这样,那么你必须有五个泛型参数。这会给你编译时的安全性,但会增加使用的复杂性。
有许多细节需要推断,但听起来你有几个选择: