我们什么时候应该使用const?Const嵌入到客户端代码中。只读不是。但是const更快。也许只是轻微的。问题是,在任何情况下您应该更喜欢const而不是readonly?或者换句话说,我们实际上总是最好使用readonly而不是const(记住上面提到的baked事件)吗?我相信“const”唯一合适的时候是当你正在编写一个比你正在编写的程序更持久的规范时。例如,如果您正在实施HTTP协议,那么拥有“GET”的常量成员是合适的,因为它永远不会改变,并且客户当然可以将其硬编码到他们编译的应用程序中,而不必担心您以后需要更改值。如果您有任何机会需要在未来的版本中更改该值,请不要使用const。哦!永远不要假设const比readonly字段快,除非你已经测量过它。有JIT优化可能使它几乎相同。Constvsreadonly:快速了解C#中“const”和“readonly”之间的区别:“const”:“readonly”:更正:以上声明const不能是静态的。这是用词不当。它们不能应用static关键字,因为它们已经是静态的。因此,对于要在编译时求值的静态项,请使用const。您可以在switch语句fwiw中使用const值作为case。当初始化不简单时,readonly很有用。当值在编译前确定时,您可以使用const。在某种程度上,readonly是一个运行时常量,而const是一个编译时常量值。编辑:如果您使用www.koders.com查看一些代码,您会发现readonly与const一起使用。我认为,这背后的原因可能是它在构造函数中是可修改的(如果需要)。使用const(尤其是public),您可能会根据代码破坏客户端代码。我通常只对我知道永远不会改变的东西使用const,比如真空中的光速。对于可能会改变的事情,我更喜欢只读。这样我只需要在发生变化时重新编译一个dll。这个经验法则的一个例外是当一个变量对其自己的程序集是私有的/受保护的/友好的。在这些情况下,使用const是安全的。const不能用于类或结构(字符串常量和null除外,正如Skeet先生所指出的),只能用于值类型并作为静态字段访问。const的值在编译时设置,必须在声明时设置。readonly可以用于枚举以外的任何东西,枚举可以是静态字段或实例字段。readonly的值是在运行时设置的,可以根据调用的构造函数进行不同的设置。这是一个很好的页面,它概述了const、readonly和static关键字。您应该更喜欢在编译时测试的修饰符而不是在运行时测试的修饰符(在此上下文中为const而不是readonly)。您应该始终使用支持所需语义的修饰符。如果某些内容不打算修改-保护它或有人会写一些东西(意外或无意)。只要可以在声明中设置值而无需等待构造函数,就应该使用const。const的一个很好的用途是键/值对的键。例如,如果您仍在使用AppSetting(而不是ApplicationSettings),则将键名加载到配置设置中就没有意义。如果在多个地方使用,将Key粘贴在const中。C#教程就是这样:我们应该何时(如果有的话)使用const?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
