Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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#.NET:当属性设置为无效值时,是否可以创建编译时警告?_C#_Compiler Errors - Fatal编程技术网

C#.NET:当属性设置为无效值时,是否可以创建编译时警告?

C#.NET:当属性设置为无效值时,是否可以创建编译时警告?,c#,compiler-errors,C#,Compiler Errors,这只是一个可行性问题。我知道如果我说 int myInt = "5"; 我得到一个编译时错误。我想做的是在对象上创建编译时错误或警告。假设我有一个带有一些属性的自定义对象。其中一个属性不能为null,否则解决方案将无法编译: public static class NoNullObjects { //NotNullable public static NotNullObject {get; set;} } MyClass.cs: L

这只是一个可行性问题。我知道如果我说

   int myInt = "5"; 
我得到一个编译时错误。我想做的是在对象上创建编译时错误或警告。假设我有一个带有一些属性的自定义对象。其中一个属性不能为null,否则解决方案将无法编译:

   public static class NoNullObjects
   {
       //NotNullable
       public static NotNullObject {get; set;}
   }
MyClass.cs:

   Line#55   NoNullObjects.NotNullObject = null;
当我构建时,我希望看到:

   Error: NotNullObject cannot be set to null. MyClass.cs Line 55.

有办法做到这一点吗

不,不仅仅是C。微软的代码契约工作可能会给你你想要的:。

是一个涉及同一主题的问题。公认的答案建议您使用。

我只需要等待.NET 4:)为什么我想在下一次迭代中总是这样做?内特:您可以随时下载VS2010 beta版,它有.NET 4.0。我过去热衷于合同设计,现在我热衷于单元测试。根据我的经验,单元测试比使用断言/代码契约要有效得多。我建议进入单元测试,而不是等待代码契约。看,这并不能解决OP的问题。因为OP请求不可为null的引用类型。