有没有人能想到一个好的Resharper模式来检测以下错误:
decimal? x = null;
decimal? y = 6M;
var total = x + y;
Console.WriteLine(total); // Result is null
我尝试创建一个模式,但我无法快速处理所有类型的算术(例如+,-,*等)和任何可空类型(例如Nullable<int>、Nullable<decimal>、Nullable<double>
等)。同时,我也不能处理交换律(例如它应该检测到x + y以及y + x)。
请注意,我不一定需要检测x是否为null:只需要检测它是否是可空类型。我希望强制开发人员编写:x.Value + y.Value
。
x + y
模式,而是寻找已经被确定赋值为null
并且左右两侧没有任何+
、-
、*
、/
、^
、*
、~
、<<
、>>
(或者在其左侧的-=
、+=
等)的Nullable<T>
。 - SimpleVarNullable<T>
一起工作? - SimpleVar