C# 我可以使用三元运算符设置通用方法参数吗?
我有一个非常有用的实用程序方法,它接受任何对象类型并将其序列化为XML对象。方法参数定义为泛型,如下所示C# 我可以使用三元运算符设置通用方法参数吗?,c#,generics,ternary-operator,C#,Generics,Ternary Operator,我有一个非常有用的实用程序方法,它接受任何对象类型并将其序列化为XML对象。方法参数定义为泛型,如下所示 public static string Serialize<T>(T value) 但我一直收到一条错误消息,指出这些类型不兼容 我也认为??操作员应该可以工作,但遗憾的是,它也给了我一个错误 感谢您的解释。假设您有不同的非相关类型,您需要将序列化位添加到三值逻辑中: var result = addressRequest != null ? Utility.Seri
public static string Serialize<T>(T value)
但我一直收到一条错误消息,指出这些类型不兼容
我也认为??操作员应该可以工作,但遗憾的是,它也给了我一个错误
感谢您的解释。假设您有不同的非相关类型,您需要将序列化位添加到三值逻辑中:
var result = addressRequest != null
? Utility.Serialize(addressRequest)
: Utility.Serialize(billingSiteIDHouseNumberRequest);
这两种物体的类型是什么?使三元运算符worker从第二个操作数转换为第三个操作数应该是一样的,反之亦然。假设这是两种不同的对象类型,但派生自同一个类,则可以将这两种类型转换为父类型以使其工作。但是,将其扩展到if/else.good point@jonskeett可能更清晰/可读对象类型是不相关的,不能从一个转换到另一个。也没有公共的父类。Dave下面的回答是我应该编码的。根据Serialize的具体操作,即使类型相关,也可能需要这样做,但不相同。Dave,这是我应该首先编码的方式,感谢及时的响应,是的,类型是不相关的。
var result = addressRequest != null
? Utility.Serialize(addressRequest)
: Utility.Serialize(billingSiteIDHouseNumberRequest);