用于限制可以为属性设置的值的结构化代码

Joh*_*tos 2 .net c# vb.net

在限制中编码属性可以得到什么值的正确(和最好)方法是什么?

例如,假设我有以下简单类:

Public Class MyClass
   Public Property MyDate As Date
Run Code Online (Sandbox Code Playgroud)

现在,假设MyDate在运行时设置,但不能采用不到一年前的任何值.

在MyDate的setter中抛出一个异常,然后在我的主模块中以一种Try...Catch方式对它进行编程是正确的,然后警告用户该值是否错误或有更好的方法吗?

我确定这是一个非常简单的问题,但我只是想确保我按照最佳编程实践来做这件事.

Mar*_*zek 5

是的,抛出和异常是一个好主意.在这种情况下,ArgumentOutOfRangeException似乎是最好的.继MSDN之后:

当参数的值超出被调用方法定义的允许值范围时引发的异常.