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:这意味着不管实例数量多少,都有一个字段,即使没有实例。