2014-01-10 34 views
1

考慮到你需要調用一個不能在Contract.Requires中修改的庫的方法(例如,方法Regex.Matches),有一種方法可以指示這種方法是純粹的嗎?如何表達一個庫中的方法是純粹的?

Contract.Requires<ArgumentException>(Regex.Matches(password, "\d").Count > 1) 

警告:檢測到調用方法 'System.Text.RegularExpressions.Regex.Matches(System.String,System.String)' 無[純]在方法的合同

+0

你確定問題的方法_is_是純粹的嗎?如果不是,那麼你可能會使合同無效。 –

+0

因爲我只查詢一個字符串是否符合正則表達式模式,所以沒有副作用。 – Apocatastasis

回答

0

實際上這是不可能的。微軟將裝飾這種方法的簽名,以提供與代碼合同的更好集成。