cas*_*rad -6 c# performance asp.net-web-api
我有一个标准的Web API应用程序.让我们假设在一个动作中我想返回这样的响应:
public IHttpActionResult GetSomething()
{
var model = new Domain.OutcomingModels.Action[1];
return Ok(model);
}
Run Code Online (Sandbox Code Playgroud)
对于model我可以指定为a class或a的对象struct.从我的角度来看,没有理由喜欢struct过class,就性能.
该应用程序将每秒处理数百万客户端的请求.我关心的事情:
我对吗?
问题不在于类和结构之间的一般差异.它是将它们与类似Ok或BadRequest将C#对象转换为序列化对象的方法一起使用.我在问可能的警告.
该模型将转换为JSON或XML并返回给客户端.
JSON和XML都没有区分类和结构,所以从这个角度来看无论你选择class还是结构都没关系struct.很可能没有有意义的性能差异.
有可能是从福利等系统的部分使用struct,但是序列化是不是其中之一.
坚持class到你有一个令人信服的理由改变它struct.然后你消除了对可变结构的任何担忧,传递引用/副本,值与引用相等等.