The*_*Saw 13 c# enums binary-compatibility
想象一下DLL中的这个枚举.
public enum Colors
{
Red,
Green
}
Run Code Online (Sandbox Code Playgroud)
添加枚举值是否会破坏二进制兼容性?如果我要更改它,现有的EXE会破坏吗?
public enum Colors
{
Red,
Green,
Blue
}
Run Code Online (Sandbox Code Playgroud)
我看到了这个答案,但它似乎解决了插入值的问题.如果我只在最后添加值,那可以吗?
Mar*_*ell 18
不,这不会破坏二进制兼容性(尽可能多:程序集仍会加载等),因为枚举基本上是整数文字常量.在中间插入值显然是一个非常危险的想法,但你已经排除了这一点.
但是,它可能会导致您需要防范的许多其他问题:
switch特别是语句)可能无法预测新值; 从技术上讲,这也是一个问题,因为枚举没有经过值检查(枚举变量可以包含未定义的值)| 归档时间: |
|
| 查看次数: |
2804 次 |
| 最近记录: |