C# C中常量的内存分配#

C# C中常量的内存分配#,c#,C#,使用时如何分配内存: public class MyClass { public const string myEVENT = "Event"; //Other code } 好的,它是一个编译时常量-因此如果您从其他程序集使用它,“事件”将被复制到其他程序集的IL中。是否在交叉汇编中插入取决于CLR设置IIRC 但是,如果您担心是否会为MyClass的每个实例获得一个新字符串或一个新字符串变量,则无需担心-const意味着静态 简而言之,除非你有大量的常量(或大

使用时如何分配内存:

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

好的,它是一个编译时常量-因此如果您从其他程序集使用它,“事件”将被复制到其他程序集的IL中。是否在交叉汇编中插入取决于CLR设置IIRC

但是,如果您担心是否会为
MyClass
的每个实例获得一个新字符串或一个新字符串变量,则无需担心-
const
意味着
静态


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

我认为维基百科的这一页应该指向这里。。。(Jon使用IIRC…就像Chuck Norris想知道他是否能起床。寻找Jon的其他事实…:)嘿@Jon Skeet,-“const意味着static。”意味着conatant默认是静态的,将为不同的所有对象生成常量变量的单个副本@vimalraturi:这意味着不管实例数量多少,都有一个字段,即使没有实例。