Невозможно использовать классы в этом методе ref ClassName (byRef) Feature C # 7.2 - PullRequest
0 голосов
/ 23 ноября 2018

Я тестировал новые и блестящие возможности C # 7.1 / 7.2 / 7.3, и когда я пробовал этот класс ref, он не работал, а этот ref int работал, у вас, ребята, есть идеи, как его сделать?работа с классами?

Пример кода:

    public static bool Works(this ref int i)
    {
        return i == 0;
    }

    public static bool DontWorks(this ref Test i)
    {
        return i.A == 0;
    }

    public class Test
    {
        public int A { get; set; }
    }

Мне жаль, что название было немного плохим, но я не знал, как его улучшить, не стесняйтесьДайте мне предложения или отредактируйте, если хотите.

Спасибо за ваше время и хорошего дня.

1 Ответ

0 голосов
/ 23 ноября 2018

Ref методы расширения разрешены только для типов, которые известны как структуры.Это намеренно.Причины этого можно найти в документе с предложениями по функциям .

Кроме того, обычные типы классов являются ссылочными типами.Передача ссылочного типа в качестве параметра не копирует объект, в отличие от с параметрами типа значения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...