По словам Эрика Липпета - C# поддерживает эту функцию.
вполне возможно создать версию C#, которая поддерживает как эти функции. Затем вы можете сделать что-то вроде
static ref int Max(ref int x, ref int y)
{
if (x > y)
return ref x;
else
return ref y;
}
, а затем вызвать его с
int a = 123;
int b = 456;
ref int c = ref Max(ref a, ref b);
c += 100;
Console.WriteLine(b); // 556!
вы можете прочитать больше о своем ответе на вопрос о типы возврата реф в C#:
Why doesn't C# support the return of references?
Что касается вас, вопрос о VB - язык его не поддерживает:
Return By-Reference?
Хотя функции могут передавать переменные по ссылке, они не могут вернуть им таким образом. Когда функция возвращается, ее локальные переменные уже не имеют (или находятся в ожидании очистки, если они выделены в виде кучи). Функции поэтому всегда возвращаются по значению; потому что локальные переменные больше не имеют действительных адресов памяти, нет никаких ссылок на возвращаемые ссылки .
Вводя все это вместе, когда вы возвращаете объект из функции, копируется только то, что является адресом объекта. Когда вы верните тип значения из функции, само копирование будет скопировано.
Это означает, что ссылочные типы, по существу, типы значений, в котором значение является адресом памяти объекта в куче, (или ничего)
Источник: VB.NET, Is Object Returned by Reference from Function
Я не смог найти такая же информация для F #, но я думаю, это будет то же самое, что и VB - так что ответ - вы не можете вернуть ref в F #.
Благодарим вас за ссылки.Отмечу, что Эрик сказал, что можно создать версию C#, которая сделала это, и что он это сделал, а не тот, что C#, как отправил, поддерживал его. Кроме того, ответ hoodaticus, хотя, похоже, добавляет эту проблему, отвечает на совершенно другой вопрос. Тем не менее, полезно для ссылок. – jmoreno
Правильно, вы неправильно поняли, что я сказал. Я построил приватную тестовую версию C# с этой функцией, чтобы доказать, что это можно сделать. Мы решили не делать этого в реальном продукте. –
Благодарим вас за разъяснение. – DeJaVo