我可以使用三元运算符来设置泛型方法参数吗?
Can I use a ternary operator to set a generic method parameter?
我有一个非常有用的实用方法,它接受任何对象类型并将其序列化为 XML 对象。方法参数被定义为泛型,像这样
public static string Serialize<T>(T value)
我通常会在记录之前向该方法发送 Web 服务器请求或响应,到目前为止,这对我来说在所有情况下都运行良好。但是现在我有一段代码,我可以在其中使用两个请求对象之一,所以我想像这样调用 Serialize 方法
Utility.Serialize((addressRequest != null)?addressRequest:billingSiteIDHouseNumberRequest)
但我不断收到一条错误消息,指出这些类型不兼容。
我也觉得??运算符应该可以工作,但它也给我一个错误。
感谢任何解释。
假设您有不同的不相关类型,您需要将序列化位添加到三元逻辑中:
var result = addressRequest != null
? Utility.Serialize(addressRequest)
: Utility.Serialize(billingSiteIDHouseNumberRequest);
我有一个非常有用的实用方法,它接受任何对象类型并将其序列化为 XML 对象。方法参数被定义为泛型,像这样
public static string Serialize<T>(T value)
我通常会在记录之前向该方法发送 Web 服务器请求或响应,到目前为止,这对我来说在所有情况下都运行良好。但是现在我有一段代码,我可以在其中使用两个请求对象之一,所以我想像这样调用 Serialize 方法
Utility.Serialize((addressRequest != null)?addressRequest:billingSiteIDHouseNumberRequest)
但我不断收到一条错误消息,指出这些类型不兼容。
我也觉得??运算符应该可以工作,但它也给我一个错误。
感谢任何解释。
假设您有不同的不相关类型,您需要将序列化位添加到三元逻辑中:
var result = addressRequest != null
? Utility.Serialize(addressRequest)
: Utility.Serialize(billingSiteIDHouseNumberRequest);