Почему sayi1 принемает значение sayi2?

270
29 марта 2017, 14:21

sayi1 принемает значения sayi2 не могу понять почему. Вроде бы sayi2 = sayi1 то есть в sayi2 перекидываются значения sayi1 но потом когда sayi2 = 5 и это же значение присваевается и к sayi1. ответ этой программы 5 5 6 7

class Sayi
{
    public int Deger { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        Sayi sayi1 = new Sayi();
        sayi1.Deger = 4;
        Sayi sayi2 = sayi1;
        sayi2.Deger = 5;
        int sayi3 = new int();
        sayi3 = 6;
        int sayi4 = sayi3;
        sayi4 = 7;
        Console.WriteLine(sayi1.Deger +   +sayi2.Deger);
        Console.WriteLine(sayi3 +“  +sayi4);
    }
}
Answer 1

В C# существуют две разновидности типов: ссылочные типы и типы значений. В переменных ссылочных типов хранятся ссылки на их данные (объекты), а переменные типа значений содержат свои данные непосредственно. Две переменные ссылочного типа могут ссылаться на один и тот же объект, поэтому операции над одной переменной могут затрагивать объект, на который ссылается другая переменная. Каждая переменная типа значения имеет собственную копию данных, и операции над одной переменной не могут затрагивать другую (за исключением переменных параметров out и ref, см. разделы ref и Модификатор параметров out).

https://msdn.microsoft.com/ru-ru/library/490f96s2.aspx

Происходит создание ссылки sayi2 на sayi1. Они ведут на одни и те же данные.

Sayi sayi2 = sayi1;

Для того чтобы создать несвязанную копию нужно использовать new

Sayi sayi2 = new Sayi(sayi1);

int не является ссылочным типом.

int sayi4 = sayi3;
READ ALSO
ASP MVC 5 Проблемы развертывания в Azure

ASP MVC 5 Проблемы развертывания в Azure

Использую VS 2017Сама визуальная часть отлично публикуется и доступна по url

324
SQLite БД на сетевом диске. Connection.Open() - ошибка?

SQLite БД на сетевом диске. Connection.Open() - ошибка?

ЗдравствуйтеПодскажите как правильно написать путь к БД лежащей в сети?

286
Подскажите как расположить элемент на dataGridView

Подскажите как расположить элемент на dataGridView

У меня есть dataGridView, где подключена таблица, одно из полей типа ДатаЯ хочу сделать так, что бы при клике на это поле появлялся элемент выбора...

280
Google search asp.net mvc как прикрутить? [требует правки]

Google search asp.net mvc как прикрутить? [требует правки]

Имеется проект, нужно к нему прикрутить гугл поискМожет есть какой гайд или кто может рассказать? Заранее спасибо!

235