我查看了 .NET 中的许多 Flux 实现,并认为这种方法非常好:
- 它使用静态成员而不是枚举,使 XAML 更好
- 无需转换为枚举类型/从枚举类型转换(更简洁的代码)
- 与几乎所有发布/订阅机制轻松集成。
话虽如此,我想保留静态属性到字符串的编码技术,但我无法进行以下工作:
public class BitnameTypesBase
{
// I want to override this in base classes.. but can't
public static string ChainName;
public static string GET_BITNAME = "get_bitname_" + ChainName;
public static string SEND_BITNAME = "send_bitname_" + ChainName;
public static string QUERY_BITNAME = "query_bitname_" + ChainName;
}
public class BitcoinBitName : BitnameTypesBase
{
// Ouch, can't override field or properties
override public static string ChainName = "Bitcoin";
public static string MySpecialAction = "special_bitname_" + ChainName;
}
public class OthercoinBitName : BitnameTypesBase
{
// Ouch, can't override field or properties
override public static string ChainName = "something new";
public static string MySpecialAction = "special_bitname_" + ChainName;
}
问题
- 语言中有什么允许这样做的吗?
- 是否有任何我可以做的预编译脚本允许这样做?
- 是否有任何我可以使用的 Fody 插件可以提供帮助(我没有看到)