Каждый Decimal как видно занимает ровно 0x10 байт.
Посмотрим отдельно на decimal — состоит из 4х int: Name: System.Decimal
...
Fields:
MT Field Offset Type VT Attr Value Name
71812dbc 400037e 4 System.Int32 1 instance 0 flags
71812dbc 400037f 8 System.Int32 1 instance 0 hi
71812dbc 4000380 c System.Int32 1 instance 0 lo
71812dbc 4000381 10 System.Int32 1 instance 0 mid
...
Почему врет по вашему sizeof и сколько он должен возвращать?
Пардон, я вас не корректно понял, указав 2ю причину.
Главная страница сайта — статический код, и, вероятно, у вас белый экран потому, что либо браузер не поддерживает inline svg, либо ещё не подгрузились ресурсы.
А что, при продаже чехлов пишут, что они предохраняют аппарат при падении? Я не видел. А вот эта фирма явно заявляет «Liquipel protects every feature of your device with a revolutionary waterproof shield». Соответственно логично было бы дать гарантию, если это действительно работает.
Случилось только тогда, когда его на глубину погрузили большую и он ударился об дно под водой. А на 4см и 20 секунд под водой — всё отлично. Можете посмотреть ещё тесты с IPhone 4 где его сначала кидали, а потом погружали в воду — и то всё ок.
Сказать можно.
1) GC не вызывает Dispose, GC вызывает Finalize, если определён деструктор;
2) Сложно спрогнозировать, когда будет вызов GC, если его не вызывать через GC.Collect();
3) Close вызывает Dispose и вызывает GC.SuppressFinalize, что разгружает очередь финализатора. Но using использовать короче;
4) В реализации MemoryStream в .NET от MS действительно не использует managed ресурсы, но вы можете это заявить про Mono, Silverlight и про последующие версии .NET?
5) Просто вызовы без using или try finally объектов попадающих в очередь финализатора (обычно они реализуют IDisposable) использовать плохо, так как это не будет гарантировать освобождения ресурсов когда они не нужны, что, возможно, создаст memory pressure или нерациональное использование ресурсов.
[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct X
{
public decimal f1;
public decimal f2;
public decimal f3;
public decimal f4;
}
!do 02532e2c
Name: Test.Program+X
MethodTable: 002a3094
EEClass: 002a135c
Size: 72(0x48) bytes
(c:\Projects\other\ClassLibrary1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe)
Fields:
MT Field Offset Type VT Attr Value Name
717e7f08 4000001 4 System.Decimal 1 instance 02532e30 f1
717e7f08 4000002 14 System.Decimal 1 instance 02532e40 f2
717e7f08 4000003 24 System.Decimal 1 instance 02532e50 f3
717e7f08 4000004 34 System.Decimal 1 instance 02532e60 f4
Каждый Decimal как видно занимает ровно 0x10 байт.
Посмотрим отдельно на decimal — состоит из 4х int:
Name: System.Decimal
...
Fields:
MT Field Offset Type VT Attr Value Name
71812dbc 400037e 4 System.Int32 1 instance 0 flags
71812dbc 400037f 8 System.Int32 1 instance 0 hi
71812dbc 4000380 c System.Int32 1 instance 0 lo
71812dbc 4000381 10 System.Int32 1 instance 0 mid
...
Почему врет по вашему sizeof и сколько он должен возвращать?
Главная страница сайта — статический код, и, вероятно, у вас белый экран потому, что либо браузер не поддерживает inline svg, либо ещё не подгрузились ресурсы.
1) GC не вызывает Dispose, GC вызывает Finalize, если определён деструктор;
2) Сложно спрогнозировать, когда будет вызов GC, если его не вызывать через GC.Collect();
3) Close вызывает Dispose и вызывает GC.SuppressFinalize, что разгружает очередь финализатора. Но using использовать короче;
4) В реализации MemoryStream в .NET от MS действительно не использует managed ресурсы, но вы можете это заявить про Mono, Silverlight и про последующие версии .NET?
5) Просто вызовы без using или try finally объектов попадающих в очередь финализатора (обычно они реализуют IDisposable) использовать плохо, так как это не будет гарантировать освобождения ресурсов когда они не нужны, что, возможно, создаст memory pressure или нерациональное использование ресурсов.