2010-09-15 88 views
2

我使用Resharper 5.x來編譯時分析,它通常很好,但似乎並沒有將代碼合約應用於其邏輯。我有類似以下的內容,但是我在標記行上遇到問題。Resharper和代碼合同不能很好地協作

public void Method(int arg) 
{ 
    Contract.Requires(this.NullableValueType != null); 

    this.Method2(
     arg, 
     this.NullableValueType.Value, // [1] 
     this.ReferenceType); 
} 

[1]最終以「Possible」System.InvalidOperationException'突出顯示。有沒有辦法擺脫這個錯誤,而不關掉支票?

+1

重複的問題,請參閱:http://stackoverflow.com/questions/929859/resharper-possible-null-assignment-when-using-microsoft-contracts - 您需要告訴Resharper Code Codes的驗證方法。 – porges 2010-09-15 22:01:41

回答

0

儘管公認Resharper可能會更聰明並考慮到合同,但不幸的是,目前情況並非如此。

我會建議讓行更明確。取而代之的

this.NullableValueType.Value 

你可以寫

this.NullableValueType ?? <something> 

其中「東西」是的,當然,這東西並不重要,因爲它永遠不會發生(例如,new ThatValueType())。

相關問題