how to set compile time validation on class instance members

与世无争的帅哥 提交于 2020-01-11 10:29:26

问题


I have created a class like below:

class myclass
{
  Public  int myint;
}

Now I want to restrict the range of myint(min 5 and max 10).

I want if any one set the value of myint which is not in the range it will give a compile time error(not runtime error) please help me how to achive it.


回答1:


It's experimental, but you could look into Spec#. It can provide you with more compile-time checks. Code Contracts are another option (but that's only available in certain editions of Visual Studio).

Edit:

Looks like code contacts may now be available as a standalone download! See this page!




回答2:


You don't have that out-of-the-box in .NET, but there're some validation engines that let you validate an instance of some object against some rules.

Read about:

  • NHValidator: It can be used standalone, read this article: http://ayende.com/Blog/archive/2009/05/01/nhibernate-validator.aspx

  • Microsoft Application Validation Block: http://msdn.microsoft.com/en-us/library/ff650484.aspx

I'll suggest you to use NHValidator, because it's very easy-to-use, needs zero configuration and it has a good community support. Another good point is you can use in any layer (business, presentation...) because it's attribute-oriented, meaning that you don't need to inherit any class or implement an interface in order to use it anywhere!



来源:https://stackoverflow.com/questions/4873904/how-to-set-compile-time-validation-on-class-instance-members

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!