2016-12-01 109 views
1

嘗試使用自定義NDepend變量來代替常量,並且無法找出圍繞let關鍵字的NDepend語法的一些複雜性。NDpend變量計算

一個內置的查詢是:

warnif count > 0 from m in JustMyCode.Methods where 
    m.CyclomaticComplexity > 30 || 
    m.ILCyclomaticComplexity > 60 || 
    m.ILNestingDepth > 6 
    orderby m.CyclomaticComplexity descending, 
      m.ILCyclomaticComplexity descending, 
      m.ILNestingDepth descending 
select new { m, m.CyclomaticComplexity, 
       m.ILCyclomaticComplexity, 
       m.ILNestingDepth } 

而我真正想要做的是不要使用0恆定值和底座上的代碼庫來代替。沿線的東西:

let tenPercent = (JustMyCode.Methods.Count()/100 * 10) 
warnif count > tenPercent from m in JustMyCode.Methods where 
    m.CyclomaticComplexity > 30 || 
... 

這是可能的嗎?

回答

0

你可以寫這樣的事情...

warnif percentage > 10 
from m in Application.Methods where 
m.CyclomaticComplexity > 2 
select new { m, m.CyclomaticComplexity } 

...但是這個功能是有點隱藏(percentage關鍵字不會出現在智能感知),因爲它尚未拋光。百分比基數是方法的總數(包括抽象方法,第三方方法,生成的方法...),而且這個基數實際上是不可配置的。此外,常量值(10這裏)不能是一個表達式。

enter image description here