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);
    }
}

c#内存消耗相同,对象/变量声明与不声明分开行

"我想确认,这两个代码段,除了格式化之外是相同的,消耗相同的内存量。"

除了格式不同,它们并不相同。它们在逻辑上是等价的,但是一个存储中间值,另一个不。

如果问题是——它们在运行时是否消耗相同数量的内存,那么答案可能是肯定的。存储已经存在的中间值可能不会增加开销。很多时候,人们这样做是为了调试。

听起来你好像在和别人争论代码风格