C# 从解决方案中的所有枚举中删除Null

C# 从解决方案中的所有枚举中删除Null,c#,.net,enums,null,C#,.net,Enums,Null,根据以下问题和答案的回答,如果在整个项目中从未使用过空值,那么从中等权重的[50000行]项目中删除所有空实例真的值得吗?它看起来像是在resharper中简单的右键单击,但它真的值得付出努力吗?我会得到什么?只是一个更好的练习代码 您是否应该删除枚举中未使用的None/null值与您对该问题的回答相同。如果您认为它们不应该存在,请将其删除。如果你认为它应该存在,就保留它 我相信这个问题只是现有问题的一个小小延伸。删除未使用的枚举成员是一个很容易逆转的单行更改 一个可能的陷阱是删除枚举成员会更改

根据以下问题和答案的回答,如果在整个项目中从未使用过空值,那么从中等权重的[50000行]项目中删除所有空实例真的值得吗?它看起来像是在resharper中简单的右键单击,但它真的值得付出努力吗?我会得到什么?只是一个更好的练习代码


您是否应该删除枚举中未使用的None/null值与您对该问题的回答相同。如果您认为它们不应该存在,请将其删除。如果你认为它应该存在,就保留它

我相信这个问题只是现有问题的一个小小延伸。删除未使用的枚举成员是一个很容易逆转的单行更改

一个可能的陷阱是删除枚举成员会更改enum.ToString的输出。

请考虑此枚举:

enum Color { None, Red, Green, Blue }
这将不打印:

Console.WriteLine(default(Color));
如果删除None,则该语句将打印其他内容

如果执行此操作,If将打印0:

enum Color { Red = 1, Green, Blue }
enum Color { Red, Green, Blue }
如果执行以下操作,它将打印为红色:

enum Color { Red = 1, Green, Blue }
enum Color { Red, Green, Blue }
此外,后一个更改将对序列化值产生影响

假设未使用None值时要小心,因为在代码中看不到对它的引用

类似的观察结果适用于本规范:

var colors = new Color[10];

Console.WriteLine(colors[0]);


从不同方面来看,删除未使用的枚举值的一些优点:

删除未使用的代码通常有助于提高代码的可读性和可维护性。 没有目的的价值观会导致混乱。 以及一些可能的陷阱:

一个未使用的枚举值可能仍然有一个记录的目的,因为它只是存在的。 未使用的枚举值仍可能影响其他枚举值获得的值。 更改代码总是有引入bug的潜在风险。
最后一句话让人们投了反对票并投票决定是否关闭……你是在问是否应该删除一个未使用的枚举值?如果它没有被使用,为什么还要留下它呢?是的,它还没有被使用。如果你有未使用的代码,而它根本没有任何用途,为什么要保留它呢?很好,克里斯。现在代码中的那些空枚举对我没有什么害处,但我认为删除它们可能是麻烦的开始。它们的害处主要局限于一些元数据。当有疑问时,不要为了这么小的潜在好处而更改工作代码。