gpt4 book ai didi

c# - Color.Red 不能作为 Attribute 中的参数

转载 作者:行者123 更新时间:2023-12-04 04:33:15 24 4
gpt4 key购买 nike

我有一个这样的 cs 类:

public class MyClass
{
[DefaultValue(Color.Red)]
public Color MyColor{get;set;}
}

编译器总是返回错误 CS0182:
属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式

我怎么了?

T_T

最佳答案

如前所述,Color.Red不是常量表达式。如果您的意图是使用类似 PropertyGrid 的东西,然后您可以通过添加 ShouldSerialize* 来实现此目的和 Reset*方法:

public class MyClass
{
public MyClass()
{
ResetMyColor();
}
public Color MyColor { get; set; }

private bool ShouldSerializeMyColor() { return MyColor != Color.Red; }
private void ResetMyColor() { MyColor = Color.Red; }
}

如果您打算与 XmlSerializer 合作,然后 ShouldSerialize*必须是公开的( Reset* 不被 XmlSerializer 使用):
public class MyClass
{
public MyClass()
{
MyColor = Color.Red;
}
public Color MyColor { get; set; }

public bool ShouldSerializeMyColor() { return MyColor != Color.Red; }
}

关于c# - Color.Red 不能作为 Attribute 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com