English 中文(简体)
系统的使用。 有关合同
原标题:Usefulness of System.Diagnostics.Contracts in question

我正在与新系统一道工作。 诊断。 合同类别似乎非常有用。 检查有约束力的论点、回报价值等法定方法 它是一个清洁的接口,可以取代一些假设的声明和内部建造的图书馆工具。

然而,在大多数时间情况下,这似乎用处不大。 从我能够说的话来看,它并没有犯错,因此我可以拿到任何东西来知道合同是否失败。 它用这个错误打开了方言箱。 如果我在遥远的箱子上打一只手套,而很少有人看一看......我知道合同失败了吗? 如果我无法弄清错误发生的事实,那么我怎么能让服务打电话的人知道这些错误。

Throw-Catch has been around for awhile, I don t understand why Contracts want to bypass this. Am I trying to use this thing incorrectly? If so, then someone give me a real-life situation where a runtime Contract makes sense. Ken

问题回答

从我可以告诉的角度来看,它没有犯错,因此我可以拿到任何东西来知道合同是否失败。

如果你需要放弃要求打捞法的特别例外,那么你应当使用<代码>。 合同。 要求和设计;TException> methods or Legacy if-then-throws subsequently by Contract.EndContractBlock()。 如果其他法典已经期望并取决于经常提出的例外情况,例如,你会这样做。

。 5.1: Argument Validation and Contracting of the

它用这个错误打开了方言箱。

如果你在“合同失败协议”中不打上标本,那么你将获得一个实际的例外,在打碎时,就在代码上打上犯罪点,而不是方言箱。 然而,这并不是赶上。

与此同时,我不理解为什么合同想要绕过这一点。 我试图不正确地使用这件事吗? 如果是,那么,有人会给我一种现实的生活状况,即经营合同具有意义。

rel=“noretinger”用户手册解释其为何运作。

想法是,你永远不应需要撰写含有处理违约的具体逻辑的方案。 它们永远不应在正确的方案中发生,在需要确定的法典中显示严重错误。 这类似于你应避免捕获<代码>。

在特殊情况下,而不是 表示在法典本身有过错,例如无法找到档案时,你仍应经常例外。 这使得呼吁守则能够酌情处理这种情况。

如果我在遥远的箱子上打一只手套,而很少有人看一看......我知道合同失败了吗?

最好是,你应当像你在使用之前那样测试软件,以确保它永远不会违反任何合同。

如果你特别需要超越经营时间的行为,你可以通过撰写自己的合同经营时间类别来这样做。 见。 7.7: 在中提供更多信息。

www.un.org/Depts/DGACM/index_spanish.htm Edit: In response to the comment below...

你们说,这是为了发现法典中的错误,但法典中的大部分错误来自外部来源的数据,而不是密码的错误。 而软件对二者都需要,将某人通过坏数据的事实记录下来,并用坏数据告诉他们,以便他们能够加以固定。

先决条件是确定何种方法为allowed<>em>的合同,这些合同须在使用该方法时由打电话者核实。 操作时间检查员将适当检查电话码,而不是该方法本身。 如果你有静态检查员,在你不确保先决条件之前,就会向您指出。

在你的情况下,处理数据的内部方法应确定前提条件,说明数据允许的种类。 如果数据是从外部来源获得的,你无法控制,那么你就应当验证数据并按惯例处理;你不想为此使用密码合同。 然而,如果你忘记充分验证这一数据,那么你在以先决条件称内部法典时会遇到违反合同的情况。 这在你自己的法典中注明了bug。





相关问题
Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How do I compare two decimals to 10 decimal places?

I m using decimal type (.net), and I want to see if two numbers are equal. But I only want to be accurate to 10 decimal places. For example take these three numbers. I want them all to be equal. 0....

Exception practices when creating a SynchronizationContext?

I m creating an STA version of the SynchronizationContext for use in Windows Workflow 4.0. I m wondering what to do about exceptions when Post-ing callbacks. The SynchronizationContext can be used ...

Show running instance in single instance application

I am building an application with C#. I managed to turn this into a single instance application by checking if the same process is already running. Process[] pname = Process.GetProcessesByName("...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...