我正在尝试执行以下操作:
[FooAttribute(Value = String.Format("{0} - {1}", myReources.BaseString, "Bar"))]
public int FooBar { get; set; }
虽然编译器抱怨...所以在我将BaseString
放在一个位置的情况下,这样做的正确方法是什么?我的代码中充斥着我的库中属性的属性,因此“全局”内部const声音就像解决方案一样,因为我无法使用资源。
答案 0 :(得分:2)
你不能在属性中使用像string.Format这样的表达式......但是以下内容应该有效:
public class MyResources
{
public const string BaseString = "there";
}
[FooAttribute(Value = MyReources.BaseString + " - Bar"))]
public int FooBar { get; set; }
答案 1 :(得分:0)
如果删除String.Format并使用基本字符串连接,编译器将不会抱怨。由于String.Format在运行时解析而不是编译时,因此不能在属性中使用它。编译器将识别myResources.BaseString和“Bar”都是常量值,因此这样做是合法的。
[FooAttribute(Value = myReources.BaseString + "Bar")]