Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以使用三元运算符设置通用方法参数吗?_C#_Generics_Ternary Operator - Fatal编程技术网

C# 我可以使用三元运算符设置通用方法参数吗?

C# 我可以使用三元运算符设置通用方法参数吗?,c#,generics,ternary-operator,C#,Generics,Ternary Operator,我有一个非常有用的实用程序方法,它接受任何对象类型并将其序列化为XML对象。方法参数定义为泛型,如下所示 public static string Serialize<T>(T value) 但我一直收到一条错误消息,指出这些类型不兼容 我也认为??操作员应该可以工作,但遗憾的是,它也给了我一个错误 感谢您的解释。假设您有不同的非相关类型,您需要将序列化位添加到三值逻辑中: var result = addressRequest != null ? Utility.Seri

我有一个非常有用的实用程序方法,它接受任何对象类型并将其序列化为XML对象。方法参数定义为泛型,如下所示

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);