C#: Add tests for Equals methods with nullable parameter types

This commit is contained in:
Tom Hvitved
2026-02-18 08:41:13 +01:00
parent b34777e67f
commit 93d417049c
2 changed files with 172 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
using System;
#nullable enable
namespace Test
{
class TestClass1 : IEquatable<TestClass1>
{
private int field1;
public bool Equals(TestClass1? param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object? param2)
{
return param2 is TestClass1 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
class TestClass2 : IEquatable<TestClass2>
{
private int field1;
public bool Equals(TestClass2 param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object? param2)
{
return param2 is TestClass2 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
class TestClass3 : IEquatable<TestClass3>
{
private int field1;
public bool Equals(TestClass3? param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object param2)
{
return param2 is TestClass3 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
class TestClass4 : IEquatable<TestClass4>
{
private int field1;
public bool Equals(TestClass4 param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object param2)
{
return param2 is TestClass4 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
}

View File

@@ -0,0 +1,86 @@
using System;
#nullable enable
namespace Test
{
class TestClass1 : IEquatable<TestClass1>
{
private int field1;
public bool Equals(TestClass1? param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object? param2)
{
return param2 is TestClass1 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
class TestClass2 : IEquatable<TestClass2>
{
private int field1;
public bool Equals(TestClass2 param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object? param2)
{
return param2 is TestClass2 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
class TestClass3 : IEquatable<TestClass3>
{
private int field1;
public bool Equals(TestClass3? param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object param2)
{
return param2 is TestClass3 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
class TestClass4 : IEquatable<TestClass4>
{
private int field1;
public bool Equals(TestClass4 param1)
{
return param1 != null && field1 == param1.field1;
}
public override bool Equals(object param2)
{
return param2 is TestClass4 tc && Equals(tc);
}
public override int GetHashCode()
{
return field1;
}
}
}