2

如果有人使对象的特定属性大于同一对象的另一个属性,我基本上不想允许编译。我可以这样做吗?有一些像:

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);
    }
}
4

1 回答 1

3

您要检查的是运行时操作,编译器无法完成。

最接近您需要做的事情是使用 C#sizeof运算符检查属性的大小(以字节为单位)。

于 2013-03-13T01:24:59.833 回答