这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatisthedifferencebetweenconstandreadonly?据我所知,在C#中,const和staticreadonly都会使值在程序执行期间不可更改。但是,const应该用于不太可能改变的数量(例如圆周率、地球半径、每加仑垃圾等)。另一方面,staticreadonly应该与当前不变但将来可能/将会改变的值一起使用(例如软件版本、算法中的乘数等)。我做对了吗?
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatisthedifferencebetweenconstandreadonly?据我所知,在C#中,const和staticreadonly都会使值在程序执行期间不可更改。但是,const应该用于不太可能改变的数量(例如圆周率、地球半径、每加仑垃圾等)。另一方面,staticreadonly应该与当前不变但将来可能/将会改变的值一起使用(例如软件版本、算法中的乘数等)。我做对了吗?
这个问题在这里已经有了答案:CS0133"Theexpressionbeingassignedto'identifier'mustbeconstant"-what'sthereasonbehindthat?(4个答案)关闭9年前。这段代码有什么问题?我收到此错误:“分配给'....'的表达式必须是常量”publicconststringConnectionString=System.IO.File.ReadAllText(@"D:\connection.ini");
这个问题在这里已经有了答案:CS0133"Theexpressionbeingassignedto'identifier'mustbeconstant"-what'sthereasonbehindthat?(4个答案)关闭9年前。这段代码有什么问题?我收到此错误:“分配给'....'的表达式必须是常量”publicconststringConnectionString=System.IO.File.ReadAllText(@"D:\connection.ini");
当编译器对此提示时,我感到有点惊讶:publicclassUsefulClass{publicconstStringRatingName=@"Ratings\rating";}publicclassOtherClass{publicvoidSomeFunc(){UsefulClassuseful=newUsefulClass();Stringrating=useful.RatingName;}}编译器说,“无法使用实例引用访问静态成员;而是用类型名称限定它”这不是问题,Stringrating=UsefulClass.RatingName;工作正常。我只是好奇这背后的想法是什么?我有一
当编译器对此提示时,我感到有点惊讶:publicclassUsefulClass{publicconstStringRatingName=@"Ratings\rating";}publicclassOtherClass{publicvoidSomeFunc(){UsefulClassuseful=newUsefulClass();Stringrating=useful.RatingName;}}编译器说,“无法使用实例引用访问静态成员;而是用类型名称限定它”这不是问题,Stringrating=UsefulClass.RatingName;工作正常。我只是好奇这背后的想法是什么?我有一
编译器错误CS0283指示只能将基本POD类型(以及字符串,枚举和空引用)声明为const。有人对这种限制的原理有理论吗?例如,能够声明其他类型的const值(例如IntPtr)会很好。我相信const的概念实际上是C#中的语法糖,它只是用文字值替换了名称的任何用法。例如,给定以下声明,任何对Foo的引用都将在编译时替换为“foo”。conststringFoo="foo";这将排除任何可变类型,因此也许他们选择了此限制,而不必在编译时确定给定类型是否可变? 最佳答案 从C#specification,chapter10.4-Con
编译器错误CS0283指示只能将基本POD类型(以及字符串,枚举和空引用)声明为const。有人对这种限制的原理有理论吗?例如,能够声明其他类型的const值(例如IntPtr)会很好。我相信const的概念实际上是C#中的语法糖,它只是用文字值替换了名称的任何用法。例如,给定以下声明,任何对Foo的引用都将在编译时替换为“foo”。conststringFoo="foo";这将排除任何可变类型,因此也许他们选择了此限制,而不必在编译时确定给定类型是否可变? 最佳答案 从C#specification,chapter10.4-Con
我为之前在我的代码中多次明确声明的值创建了一个“const”:privatestaticreadonlyintQUARTER_HOUR_COUNT=96;当我为QUARTER_HOUR_COUNT搜索并替换96时,我无意中也替换了声明,所以它变成了:privatestaticreadonlyintQUARTER_HOUR_COUNT=QUARTER_HOUR_COUNT;...但是它编译了。我认为它会不允许这样做。为什么它被编译器接受为有效声明? 最佳答案 Iwouldthinkthatitwoulddisallowthat.W
我为之前在我的代码中多次明确声明的值创建了一个“const”:privatestaticreadonlyintQUARTER_HOUR_COUNT=96;当我为QUARTER_HOUR_COUNT搜索并替换96时,我无意中也替换了声明,所以它变成了:privatestaticreadonlyintQUARTER_HOUR_COUNT=QUARTER_HOUR_COUNT;...但是它编译了。我认为它会不允许这样做。为什么它被编译器接受为有效声明? 最佳答案 Iwouldthinkthatitwoulddisallowthat.W