Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 指定给X的表达式必须是常量?_C#_String_Constants - Fatal编程技术网

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;