Как я могу создать тип с семантикой равенства, похожий на строкиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу создать тип с семантикой равенства, похожий на строки

Сообщение Anonymous »

Исходя из этого закрытого вопроса (который в настоящее время вряд ли будет открыт повторно), задача будет заключаться в создании неизменяемого типа, который
  • использует механизм, аналогичный string.Intern, чтобы одни и те же экземпляры значений использовали одну и ту же управляемую ссылку.
  • сравнение равенства сначала выполняется на основе ReferenceEquals, но затем падает вернемся к семантике значений, т.е. равенству полей.
По сути, это что-то вроде string.Equals:

Код: Выделить всё

public override bool Equals([NotNullWhen(true)] object? obj) {
if (ReferenceEquals(this, obj))
return true;

if (obj is not string str)
return false;

if (this.Length != str.Length)
return false;

return EqualsHelper(this, str);
}
Можем ли мы создать такой тип без магии автоматического компилятора/среды выполнения, которая используется для строк, а также без слишком интенсивного использования памяти?

Подробнее здесь: https://stackoverflow.com/questions/790 ... to-strings
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу создать тип с семантикой равенства, похожий на строки
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я иметь полиморфные контейнеры с семантикой стоимости в C ++?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я иметь полиморфные контейнеры с семантикой стоимости в C ++?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я иметь полиморфные контейнеры с семантикой стоимости в C ++?
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я иметь полиморфные контейнеры с семантикой стоимости в C ++?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»