我正在尝试执行以下操作:
[FooAttribute(Value = String.Format("{0} - {1}", myReources.BaseString, "Bar"))]
public int FooBar { get; set; }
编译器会抱怨。。。那么,当我把BaseString
放在一个位置时,正确的方法是什么?我的代码在库中的属性上到处都是属性,所以"全局"内部常量听起来像是解决方案,因为我不能使用资源。
不能有字符串这样的表达式。设置属性格式。。。但以下内容应该有效:
public class MyResources
{
public const string BaseString = "there";
}
[FooAttribute(Value = MyReources.BaseString + " - Bar"))]
public int FooBar { get; set; }
如果删除字符串。格式化并使用基本的字符串串联,编译器不会抱怨。由于字符串。格式在运行时解析,而不是在编译时解析,不能在属性中使用它。编译器将识别出这两个myResources。BaseString和"Bar"是常数值,因此这样做是合法的。
[FooAttribute(Value = myReources.BaseString + "Bar")]