В чём смысл использования ключевого слова ref? - C#

Узнай цену своей работы

Формулировка задачи:

Вопрос слегка может туповат. Но всё же. какой смысл от ref? если у нас и так все по ссылке передается т.е Все ровно что я просто передам переменную
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void kk( List<int> k)
        {
            List<int> d = k;
            d.Add(2);
 
        }
        static void Main(string[] args)
        {
            List<int> ll = new List<int>();
            ll.Add(1);
            kk( ll);
            foreach(int k in ll)
            {
                Console.WriteLine(k);
            }
            Console.ReadLine();
        }
    }
}
Что и по сылке выйдет тоже самое
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void kk(ref List<int> k)
        {
            List<int> d = k;
            d.Add(2);
 
        }
        static void Main(string[] args)
        {
            List<int> ll = new List<int>();
            ll.Add(1);
            kk(ref ll);
            foreach(int k in ll)
            {
                Console.WriteLine(k);
            }
            Console.ReadLine();
        }
    }
}

Решение задачи: «В чём смысл использования ключевого слова ref?»

textual
Листинг программы
class RefExample2
{
    static void ChangeByReference(ref Product itemRef)
    {
        // The following line changes the address that is stored in  
        // parameter itemRef. Because itemRef is a ref parameter, the
        // address that is stored in variable item in Main also is changed.
        itemRef = new Product("Stapler", 99999);
 
        // You can change the value of one of the properties of
        // itemRef. The change happens to item in Main as well.
        itemRef.ItemID = 12345;
    }
 
    static void Main()
    {
        // Declare an instance of Product and display its initial values.
        Product item = new Product("Fasteners", 54321);
        System.Console.WriteLine("Original values in Main.  Name: {0}, ID: {1}\n",
            item.ItemName, item.ItemID);
 
        // Send item to ChangeByReference as a ref argument.
        ChangeByReference(ref item);
        System.Console.WriteLine("Back in Main.  Name: {0}, ID: {1}\n",
            item.ItemName, item.ItemID);
    }
}
 
class Product
{
    public Product(string name, int newID)
    {
        ItemName = name;
        ItemID = newID;
    }
 
    public string ItemName { get; set; }
    public int ItemID { get; set; }
}
 
// Output: 
//Original values in Main.  Name: Fasteners, ID: 54321
 
//Back in Main.  Name: Stapler, ID: 12345

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы