Есть ли разница между передачей функции делегату по ссылке?

Я столкнулся с этим фрагментом кода С#, который использует делегаты и передает функцию делегату по ссылке...

        delegate bool MyDel(int x);
        static bool fun(int x) {
            return x < 0;
        }
        public static void Main() {
            var d1 = new MyDel(fun);       // what I usually write
            var d2 = new MyDel(ref fun);   
        }

Компилятор не жаловался и прекрасно строил проект. Я не нашел никакой разницы во время выполнения некоторых тестовых примеров, не делает ли этот синтаксис какой-то разницей, чем обычный синтаксис?

Update

В качестве InBetween, похоже, что этот синтаксис также действителен (и это делает еще меньше смысла)

var d3 = new MyDel(out fun);

Ответы

Ответ 1

похоже, в этом случае нет разницы, проходящей через ref/out/normal-way, Я попытался понять, есть ли какая-то разница в ILDASM, но нет разницы...

 delegate void MyDel();
 static void Main(string[] args)
    {
        MyDel myDel = new MyDel(Mtd1);
        MyDel d3 = new MyDel(ref Mtd1);
        MyDel d1 = new MyDel(ref Mtd2);
        MyDel d2 = new MyDel(out Mtd3);
    }

введите описание изображения здесь