有时返回对象,有时返回对象的序列化
本文关键字:返回 对象 序列化 | 更新日期: 2023-09-27 18:22:08
我有两个非常相似的方法。
public string GetMyObjectInJson(parameters)
{
MyObject TheObject = new MyObject();
...lots of work here
Javascript Serializer = new Javascript Serializer();
return Serializer.serialize(TheObject);
}
public MyObject GetMyObject(parameters)
{
MyObject TheObject = new MyObject();
...lots of work here
return TheObject;
}
我应该如何重写它,以便只有一个方法可以返回两种不同的类型:有时是字符串,有时是对象。
谢谢。
你不应该这样做。您应该有两个方法,这样就可以从调用代码中清楚地了解您想要什么以及您将得到什么。
然而,您可以使用一种方法来完成大部分工作:
public string GetMyObjectInJson(parameters)
{
MyObject object = GetMyObject();
Javascript Serializer = new JavascriptSerializer();
return Serializer.serialize(TheObject);
}
public MyObject GetMyObject(parameters)
{
MyObject TheObject = new MyObject();
...lots of work here
return TheObject;
}
然而,这表明实际上MyObject
类应该有一个SerializeToJson
方法,所以调用者会写:
string json = foo.GetMyObject().SerializeToJson();
请注意,即使不能将一个方法直接链接到另一个方法,也可以有一个包含公共工作的私有方法,该方法将从两个公共方法调用。当你可以重构你的实现时,你不应该让你的公共API变得不那么清晰。