[Csharp] public class MyClass {public int ID;/* public static bool operator = (MyClass c1, MyClass c2) {// The "=" call in the following code enters recursion until the crash if (c1 = null | c2 = null) {return c1 = c2 ;} return c1.ID = c2.ID;} public static bool operator! = (MyClass c1, MyClass c2) {// The "=" call in the following code enters recursion until the crash if (c1 = null | c2 = null) {return c1! = C2;} return c1.ID! = C2.ID;} * // correct public static bool operator = (MyClass c1, MyClass c2) {// convert the c1 object into an object and then judge it. // the object here. equals (c1, null) can also be written as // c1 as object = null if (object. equals (c1, null) | object. equals (c2, null) {return object. equals (c1, c2);} return c1.ID = c2.ID;} public static bool operator! = (MyClass c1, MyClass c2) {if (object. Equals (c1, null) | object. Equals (c2, null) {return! Object. Equals (c1, c2);} return c1.ID! = C2.ID ;}}