Этот вопрос просто для удовлетворения моего интереса. Чтение Выбор между классами и структурами на странице написано: «Размер экземпляра меньше 16 байт.».
Учитывая это простое неизменное struct
.
public struct Coordinate
{
private readonly double _latitude;
private readonly double _longitude;
public Coordinate(double latitude, double longitude)
{
_latitude = latitude;
_longitude = longitude;
}
public double Latitude
{
get { return _latitude; }
}
public double Longitude
{
get { return _longitude; }
}
}
Учитываются ли свойства и в 16-байтовом пределе? Или только поля считаются?
Если последний не будет использовать struct
, то не сможет выполнить указания, предоставленные Microsoft, так как значение типа double равно 8 байтам? Два двойных числа будут 16 байтов, что составляет ровно 16 байтов и не меньше.