As you can see, C# assumes that you want == to mean reference equality when dealing with variables of type Object. Meanwhile, VB is using helper functions because it doesn’t automatically trust the Object.Equals(Object) method to be correct.