编译器如何处理字符串插值

问题描述 投票:1回答:1

我正在使用字符串插值方法属性,如 -

const string User = "SomeUser";
const string Admin = "Admin";
.
.
.
[Authorize(Roles = $"{User},{Admin}")]
public IHttpActionResult Get()

但Visual Studio给出了错误 -

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

当我尝试使用“+”进行字符串连接时,它可以工作

[Authorize(Roles = User + "," + Admin)]
public IHttpActionResult Get()

即使我用","替换','也会出现同样的错误。

我想知道编译器如何处理字符串插值?

c# string-interpolation
1个回答
1
投票

字符串插值转换为string.Format,这不是编译时常量,因为它需要审查this question以获取更多信息

© www.soinside.com 2019 - 2024. All rights reserved.