2013-03-13 13 views
2

我基本上不希望允許編譯,如果有人使一個對象的特定屬性大於該同一對象的另一個屬性。我可以這樣做嗎?有點像:禁止編譯如果一個對象的屬性比另一個對象的「大」c#

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); 
    } 
} 
+0

不,你不能。例如:'obj.property1 = new Random()。Next()' - 現在編譯器做了什麼? – Blorgbeard 2013-03-13 01:22:24

回答

3

你正在嘗試檢查是運行操作,不能由編譯器來完成。

最接近你需要做的就是使用C#sizeof運算符,它以字節爲單位檢查屬性的大小。

相關問題