code-contracts

    0熱度

    1回答

    對於大學我必須學習如何處理C#代碼合同。 我想使用它的這種方法,應在返回數組中最小的元素: public int minarray(int[] minarray) 這裏是我,但我不知道這是否是正確的: public int minarray(int[] minarray) { //Neither the array should be empty nor null Con

    1熱度

    1回答

    我有一個問題,可能是代碼合同中的錯誤,或者我只是錯過了一些東西。 我有一個可以爲空的DateTime屬性的類DateValue,它由構造函數設置。該類的==超負荷狀態,如果first.DateValue == second.DateValue 2個對象是相等的。奇怪的是,這種比較會導致代碼合同警告: 布爾條件first.DateValue.HasValue始終計算爲一個 恆定值。如果它(或它的否定

    6熱度

    1回答

    使用不變 考慮以下IDisposable類: class MyClass : IDisposable { public bool IsDisposed { get; private set; } = false; public void Dispose() { IsDisposed = true; } } 在這個類中的每個方法,包括Di

    13熱度

    2回答

    有很多信息,靜態檢查Contract.ForAll只有有限的或沒有支持。 我做實驗的很多,發現它可以與工作: Contract.ForAll(items, i => i != null) Contract.ForAll(items, p)其中p類型爲Predicate<T> 它不能與工作: 字段訪問 房產訪問 方法組(我想委託反正這裏分配) 實例方法調用 我問題是: 是什麼ForAll可以使用的其

    7熱度

    1回答

    我正在使用C#的微軟代碼合同擴展。當我寫一個類與返回null一個重寫的ToString實現,它正確地識別問題: 我認爲,這是因爲微軟使用代碼契約內部,和他們增加了Contract.Ensures調用Object.ToString。但是,當我看到Object.ToString source code時,我沒有看到任何合同(我看到其他合同,但沒有看到我正在尋找的合同)。 Code Contracts如

    1熱度

    2回答

    爲了簡單起見,假設我有我的緩存集合的計數的私人領域: private int _count; 我想,以確保計數是從來沒有低於零。我可以在不變的檢查: [ContractInvariantMethod] private void invariant(){ Contract.Invariant(_count >= 0); } 然而,這隻會退出公共方法時,捕獲到該錯誤 - 不,當它

    1熱度

    2回答

    我沒有通過閱讀使用指南找到信息,所以我在這裏問我的問題: 假設下面的情況: /// <summary> /// Initalisiert eine neue Instanz des SettingsManager /// </summary> /// <param name="settingsRepo">Das SettingsRepository welches d

    2熱度

    1回答

    我有一個使用代碼合同的C#PCL項目。然而在TeamCity上這個項目無法建立,但看起來這個建設在本地是成功的。然而,構建日誌確實聲稱構建確實失敗,但它根本沒有任何理由。 '無法建立警告'被禁用。 我得到一個奇怪的警告: CodeContracts:找不到方法/類型 'System.Diagnostics.Contracts.PureAttribute' 彙編「[項目 路徑] \包\ Micros

    2熱度

    1回答

    我剛剛開始使用code-contracts,發現ContractAbbreviator屬性可以用乾淨的方式描述合同。 但是,我無法使它在抽象類的契約類中工作。 鑑於這種簡單的類: [ContractClass(typeof(MyContractClass))] internal abstract class MyClass { public abstract int Position

    0熱度

    1回答

    我想知道是否有可能確保(使用code-contracts)迭代器方法永遠不會產生空項目。 這種簡化的方法: public static IEnumerable<object> CreateSomeObjects() { Contract.Ensures(Contract.Result<IEnumerable<object>>() != null); Contract.Ensu