2
我正在編寫一個編譯器,這個編譯器的一個特性是它自動爲值類型生成GetHashCode(),Equals(object)和Equals({this value type})方法。眼下的Equals({此值類型})實現基本上產生IL等效於本C#生成的IL:對於大型.maxstack,性能會有什麼影響?
public bool Equals(ThisType o)
{
return Field1 == o.Field1 && Field2 == o.Field2 && Field3 == o.Field3;//etc
}
我的編譯器推動所有這些對象到堆棧中,然後開始進行比較和「和」把它們放在一起。這導致該方法的.maxstack很快變大。這是否有罰款?如果是這樣,我應該在什麼時候開始向當地人推銷價值?
謝謝。