我正在为WebRequestTool创建一个客户端,其中包含一个令牌,该令牌在每个Object的整个生命周期中都使用,但是对于类的每个实体都是唯一的。由于我不希望在创建对象后更改该值,因此我希望它是常量。
我已经尝试过使用内部SetMethod,它是从类似
的构造函数中调用的internal void setToken(string token)
{
this.TOKEN = token;
}
我也尝试只在构造函数中分配它。那也行不通。
public class Client
{
const TOKEN;
public client(string token)
{
this.TOKEN = token;
}
}
在声明常量时,除了常量编码之外,真的没有别的分配常量的方法吗?如果有什么?
答案 0 :(得分:2)
一个const字段只能在该字段的声明处初始化
您可能想改用readonly:
可以在声明或构造函数中初始化只读字段。因此,根据所使用的构造函数,只读字段可以具有不同的值
另一个不错的资源:Difference between readonly and const keyword in C#
答案 1 :(得分:1)
您可以将其声明为私有只读
public class Client
{
private readonly string _token;
public Client(string token)
{
_token = token;
}
}
只读字段一旦设置就无法修改,并且可以在构造函数中设置。