«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Когда выходит оператор C#'S == и как вы можете с этим справиться?

Когда выходит оператор C#'S == и как вы можете с этим справиться?

Опубликовано в 2025-03-23
Просматривать:778

When Does C#'s == Operator Fail and How Can You Handle It?

ровный знак (==) оператор в C#: когда это не удается и как иметь дело с

]]

== оператор в C# очень удобен для сравнения равенства двух объектов. Несмотря на то, что оператор == обычно работает со всеми типами, в некоторых случаях он не используется.

]

Примером является сравнение неограниченных общих типов. Код фрагмент, указанный в вопросе bool Compare (t x, t y) {return x == y; Если нет ограничений на t, тип может быть типом значения, и в этом случае оператор == не может быть применен напрямую. ]

Например,

int и float float Операторы не являются предопределенными . Они используют метод equals для сравнения значений. С другой стороны, типы ссылок, такие как string , имели предварительные == операторы для проверки ссылок на объект. ]

Итак, без указания ограничений на t, компилятор не может определить, использовать ли оператор

== , предопределенный для ссылочного типа, или equals метод типа значения. Чтобы разрешить это, T должен быть ограничен ссылочным типом. ]

теперь, предположим, вы называете тип как параметр типа. В этом случае оператор

== сравнится с использованием предопределенных ссылок, а не любой перегруженной версии оператора. Это связано с тем, что сравнения предопределенных цитирования считаются более основными и надежными. ]

Если у вас есть недостаточная информация о параметрах типа, вы можете использовать интерфейс

iequalityComprer или EqualityComparer .default статический метод. Эти методы обеспечивают стандартизированный способ сравнения равенства объекта независимо от их типа. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3