如果有人使对象的特定属性大于同一对象的另一个属性,我基本上不想允许编译。我可以这样做吗?有点像:
class Class1 {
public int property1 { set; get; }
public int property2 { set; get; }
public void method (Class1 obj) {
if (obj.property1 < obj.property2) {
//won't compile!
}
}
}
class Class2 {
static void Main() {
Class1 obj = new Class1();
obj.property1 = 10;
obj.property2 = 11;
obj.method(obj);
}
}
最佳答案
您尝试检查的是运行时操作,编译器无法完成该操作。
最接近您需要做的事情是使用 C# sizeof
运算符来检查属性的大小(以字节为单位)。
关于c# - 如果对象的属性是 "bigger"而不是 c# 中的另一个对象,则禁止编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15375348/