c#内存消耗相同,对象/变量声明与不声明分开行
本文关键字:声明 变量 对象 内存 | 更新日期: 2023-09-27 18:16:53
我想确认,这两个代码段,除了格式化之外是相同的,消耗相同的内存量。
写不同,但应该创建相同数量的对象实例,因此相同数量的内存?
我正在寻找一个链接/文章,100%确认这一点。
if (message.MailMessageAttachments != null && message.MailMessageAttachments.Count > 0)
{
foreach (var mailMessageAttachment in message.MailMessageAttachments)
{
mailMessage.Attachments.Add(
new Attachment(
new MemoryStream(
mailMessageAttachment.Attachment.ToArray()),
mailMessageAttachment.Filename + mailMessageAttachment.Extension));
}
}
和
if (message.MailMessageAttachments != null && message.MailMessageAttachments.Count > 0)
{
foreach (var mailMessageAttachment in message.MailMessageAttachments)
{
var btyeArray = mailMessageAttachment.Attachment.ToArray();
var attachmentMemoryStream = new MemoryStream(btyeArray);
var name = mailMessageAttachment.Filename + mailMessageAttachment.Extension;
var attachment = new Attachment(attachmentMemoryStream, name);
mailMessage.Attachments.Add(attachment);
}
}
"我想确认,这两个代码段,除了格式化之外是相同的,消耗相同的内存量。"
除了格式不同,它们并不相同。它们在逻辑上是等价的,但是一个存储中间值,另一个不。
如果问题是——它们在运行时是否消耗相同数量的内存,那么答案可能是肯定的。存储已经存在的中间值可能不会增加开销。很多时候,人们这样做是为了调试。
听起来你好像在和别人争论代码风格