Answer the question
In order to leave comments, you need to log in
What data can be stored in class type variables?
Hello everyone!
Maybe the question will seem stupid to someone, but I really can not drag it in any way.
class MyClass
{
MyClass my;
}
Answer the question
In order to leave comments, you need to log in
There are comments in the code that you need to read.
A variable of type MyClass, when memory is allocated for it, will contain a reference to MyClass with a default value of null.
The data in the class fields can be:
using System;
namespace Types
{
public class Person
{
public string FirstName { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
// Так как class это ссылочный тип данных (Reference Type), то
// в стеке создаётся ссылка на экземпляр класса Person,
// под который выделена память в области, называемой кучей (Heap).
var person = new Person
{
FirstName = "John",
Age = 30
};
// Передаём в метод ссылку. Ссылка копируется, а данные
// так и остаются в куче, с ними ничего не происходит.
// Данных может быть хоть мегабайт, они не копируются, а вот
// ссылка копируется и имеет разный размер в зависимости от
// архитектуры x86 или x64, но размер этот крайне маленький (4 байта или 8 байт)
Display(person);
Console.ReadKey();
}
private static void Display(Person person)
{
// Здесь внутри метода находится копия ссылки.
Console.WriteLine($"Name = {person.FirstName}, Age = {person.Age.ToString()}");
}
}
}
-
// Ссылка, так как это class
Person person;
// Ссылка на экземпляр класса, так как мы выделили память в куче.
person = new Person();
using System;
namespace Types
{
class MyClass
{
MyClass my;
}
class Program
{
static void Main(string[] args)
{
// Выделяем память в куче.
// Ссылается на экземпляр класса MyClass, внутри
// которого есть поле типа MyClass со значением null.
MyClass data = new MyClass();
Console.ReadKey();
}
}
}
A class is also a type, just like int, string, bool...
I.e. by writing this you are creating a new data type. The data type, which is called MyClass in this case.
This data type already stores what you write there.
Don’t worry, everything that is not native is Object, but native can also be packed into an object
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question