C# 指定给X的表达式必须是常量?
我用这个代码得到了那个错误:C# 指定给X的表达式必须是常量?,c#,string,constants,C#,String,Constants,我用这个代码得到了那个错误: const string body = HighPoint; // HighPoint is a string arg passed in to the method …并能够通过移除常数来解决此问题: string body = HighPoint; …当然,也可以指定一个常量值: const string body = "My Dinner with Andre"; ……但“我的方式不是一种很运动的方式”吗?(免费公主新娘参考)C#中的关键字const表
const string body = HighPoint; // HighPoint is a string arg passed in to the method
…并能够通过移除常数来解决此问题:
string body = HighPoint;
…当然,也可以指定一个常量值:
const string body = "My Dinner with Andre";
……但“我的方式不是一种很运动的方式”吗?(免费公主新娘参考)C#中的关键字
const
表示编译时常量。它与C++和C不同,其中同一个关键字只需要运行时的常量。C++中的< P> <代码> const >与C++中的代码> const 不同。p>
<> > C++ >代码> const <代码>运行时常量。以下操作在C中有效++
i、 e
另一方面,C#则更为严格。常量值在编译时必须是常量;没有方法返回或静态类成员
如果需要使用一次性值作为常量(即数组或方法返回),则可以使用静态和只读修饰符来模拟const
关键字提供的大多数限制:
public static readonly string body = HighPoint;
应该编译得很好,并且您仍然会像使用
const
一样,通过修改值来体验类似的限制。基本上,您正在寻找一个只读的本地文件,而这不是C#支持的功能。相关:我想对我来说奇怪的是,有人首先会制作类似于此const的东西。我从发送电子邮件时的一个示例中获得了此代码。你什么时候会在一封电子邮件中有同样的正文(除非你可能是垃圾邮件发送者)?
public static readonly string body = HighPoint;