c# - 为什么在这种情况下使用泛型?

标签 c# generics object serialization methods

public static string JsonSerializer<T>(T t)
{
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
    MemoryStream ms = new MemoryStream();
    ser.WriteObject(ms, t);
    string jsonString = Encoding.UTF8.GetString(ms.ToArray());
    ms.Close();
    return json;
}

以上是典型的 json 辅助方法。 <T> 的相关性是什么?以及将参数作为类型 T 传递的相关性?

考虑到所有对象都继承自 object ,我希望此方法签名为:

public static string JsonSerializer(object t)...

我很欣赏向 SO 社区询问为什么其他人的代码以某种方式读取可能是一种糟糕的提问方式,但这是许多文章和教程中都可以找到的非常标准的辅助方法,所以我希望这种方法是这样的一个被接受的。

最佳答案

这只是为了让您不必使用 GetType() 来获取 DataContractJsonSerializerT 类型。它还会停止对值类型进行装箱。

关于c# - 为什么在这种情况下使用泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816167/

相关文章:

f# - 如何在 F# 中声明返回满足多个约束的类型的泛型函数?

c# - 如何使用 ODP.Net 传递字节数组?

java - 如何为泛型 SortedLinkedList 创建泛型类型 T 数组?

c# - 为什么 System.Net.IPAddress 使用签名类型?

Java 类中的泛型相互交叉

Javascript、实例属性垃圾

javascript - 从原型(prototype)函数更新对象值

java - 如何在 Java 中使用对象属性填充 JTable?

c# - 你如何在不使用 System.Web 的情况下进行 UrlEncode?

c# - 从基定义初始化子类