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的引用类型。