【问题标题】:Memory allocation for const in C#C# 中 const 的内存分配
【发布时间】:2010-04-13 09:28:15
【问题描述】:

我使用时内存是如何分配的:

public class MyClass
{       
    public const string myEVENT = "Event";
    //Other code
}

【问题讨论】:

    标签: c#


    【解决方案1】:

    嗯,它是一个编译时常量——因此,如果您从其他程序集中使用它,“事件”将被复制到其他程序集的 IL 中。是否获得实习交叉组装取决于 CLR 设置 IIRC。

    但是,如果您担心是否会为MyClass 的每个实例获得一个新字符串一个新字符串变量,您无需担心 - const暗示static

    简而言之,除非您有大量、大量 常量(或大量字符串常量),否则不会给您带来问题。

    【讨论】:

    • 我认为Oxymoron 的这个维基百科页面应该指向这里......(Jon 使用 IIRC ......就像 Chuck Norris 想知道他是否可以起床。看看here 其他乔恩事实... :)
    • 嘿@Jon Skeet,-“const 意味着静态。”表示 conatant 默认是静态的,并且将为不同的所有对象生成常量变量的单个副本。 ?
    • @vimalraturi:这意味着无论实例数量多少,都有一个字段,即使它们都没有。
    猜你喜欢
    • 2014-06-25
    • 2014-10-25
    • 2010-12-11
    • 2010-11-07
    • 2022-01-21
    • 1970-01-01
    • 2011-06-25
    • 2010-10-16
    相关资源
    最近更新 更多