Leonardo,
Para simplificar sua pertinente dúvida, eu recomendo a leitura de José Carlos Macoratti sobre este paradigma:
==========================================================
C# - Diferenca entre Equals e ==
Os tipos de dados no .Net Framework podem ser classificados de acordo com o fato de uma variável de um tipo específico armazenar seus próprios dados ou um ponteiro para os dados. Se a variável armazena seus próprios dados, é um tipo de valor e se ela contém um ponteiro para dados em outro lugar na memória, é um tipo de referência. Além disso você pode atribuir um tipo de referência ou um tipo de valor a uma variável do tipo de dados Object.
...
https://macoratti.net/18/07/c_equalsop1.htm
==========================================================
Mas se quiser saber outras opiniões... segue outros links... torne-se um Ninja!
==========================================================
C# Equals() vs ==
O == operador é um operador de comparação em C#. O operador == compara as identidades de referência de ambos os operandos. Por outro lado, a função Equals() compara o conteúdo de duas variáveis de string em C#. Normalmente, ambos são usados para comparar dois valores.
...
https://www.delftstack.com/pt/howto/csharp/csharp-equals-vs-/
==========================================================
Equality operators - test if two objects are equal or not
Article - 12/02/2022 - 4 minutes to read
The == (equality) and != (inequality) operators check if their operands are equal or not. Value types are equal when their contents are equal. Reference types are equal when the two variables refer to the same storage.
...
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/equality-operators
==========================================================
[]'s,
Fabio I.