Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 合同不存在';行不通_C#_Code Contracts - Fatal编程技术网

C# 合同不存在';行不通

C# 合同不存在';行不通,c#,code-contracts,C#,Code Contracts,我遇到了系统.诊断.合同的问题 如果我使用了合同要求(条件),那么所有工作都会按预期进行。 但是我需要一个自定义异常,所以我尝试了Contract.Requires(condition) 当条件为false时,我期望出现ToSortException异常,但我什么也没有得到。在调试器中我可以看到,这一行被忽略了 ToSortException是一个公共类,它实现了Exception,并有3个公共构造函数 有人知道我做错了什么吗 异常类: public class ToShortException

我遇到了
系统.诊断.合同的问题

如果我使用了
合同要求(条件)
,那么所有工作都会按预期进行。 但是我需要一个自定义异常,所以我尝试了
Contract.Requires(condition)

条件
为false时,我期望出现
ToSortException
异常,但我什么也没有得到。在调试器中我可以看到,这一行被忽略了

ToSortException
是一个公共类,它实现了
Exception
,并有3个公共构造函数

有人知道我做错了什么吗

异常类:

public class ToShortException : Exception
{
    public ToShortException()
    {
    }

    public ToShortException(string message) : base(message)
    {
    }

    public ToShortException(string message, Exception inner) : base(message, inner)
    {

    }
}
类的方法:

    public IDictionary<string, string> getIncident(string name)
    {
        Contract.Requires(!string.IsNullOrWhiteSpace(name)); //works fine
        Contract.Requires<ToShortException>(name.Length == 7); //got not checked

        return _original.getIncident(name);
    }
公共IDictionary getIncident(字符串名称) { Contract.Requires(!string.IsNullOrWhiteSpace(name));//工作正常 Contract.Requires(name.Length==7);//未选中 返回_original.getIncident(名称); } 我找到了解决方案。“项目设置->代码合同->组装模式”必须为“标准合同要求”


默认值为“自定义参数验证”。

请包含您的代码。您的问题是否可能与相关?我认为不相关,但
如果then then THOW
是另一种选择。但是整个项目在
合同
下运行良好(这一行除外)。