如何改进这段代码?
public class Address {
public string house_no { get; set; }
public string street { get; set; }
public string zip { get; set; }
}
public class Contact {
public string email { get; set; }
public string ph_no { get; set; }
public Address address { get; set; }
}
//Test program
class Program {
static void GetContacts(string input) {
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, Contact> ContactList = serializer.Deserialize<Dictionary<string, Contact>>(input);
}
static void Main(string[] args) {
//jsonText is a string that I retrieve from a web service.
string jsonText = ws.GetContactList();
GetContacts(jsonText);
}
} 发布于 2011-03-17 19:43:07
它已经很短,而且很关键。一个小的格式更改;我会将类属性设置为camel大小写,这对于C#来说是典型的。我也去掉了缩略语。
public class Address {
public string HouseNumber { get; set; }
public string Street { get; set; }
public string Zip { get; set; }
}
public class Contact {
public string Email { get; set; }
public string PhoneNumber { get; set; }
public Address Address { get; set; }
}发布于 2011-03-17 20:25:27
这里没有什么可供实际回顾的,所以让我们开始nit-挑选过程吧:
1)我会用var做联系人。无论如何,您已经在同一行中使用了Dictionary<...>。这样就少了一点噪音。
( 2)变量Contacts名称的下骆驼情况。
发布于 2011-03-20 14:32:13
由于Skeeterburg和斯诺熊已经介绍了基本知识,我所能回顾的唯一改变就是将地址和联系从类更改为结构体。您没有通过引用进行任何操作,也不需要可变的对象。因为您不需要getter和setter,所以它可以稍微清理一下。Structs (IMO)对于这种类型的JSON传递特别有用。
有一段时间关于这方面的讨论很好:https://stackoverflow.com/questions/85553/when-should-i-use-a-struct-instead-of-a-class
另外:由于结构是在堆栈上创建的,所以您确实可以获得一些性能改进。http://msdn.microsoft.com/en-us/library/aa288471(v=vs.71).aspx
https://codereview.stackexchange.com/questions/1329
复制相似问题