Задачка для новичков - C#

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

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

Возникла идейка задать небольшую задачку интересную (для новичков по крайней мере, т.к. она довольно простая): выведет ли следующий код одно и то же или нет? Если нет, то где будет различаться, в чем и почему? Если одно и то же, то почему одно и то же?
using System;
using System.Runtime.InteropServices;
 
public class Program
{
    
    public static void Main()
    {
        PrintSize<Struct1>();
        PrintSize<Struct2>();
        PrintSize<Struct3>();
    }
 
    static void PrintSize<T>() where T : struct 
    {
        Console.WriteLine("Sizeof {0} is {1}", typeof(T).Name, Marshal.SizeOf<T>());
    }
}
 
public struct Struct1
{
    byte B1;
    long Long1;
    byte B2;
    long Long2;
    byte B3;
}
 
public struct Struct2
{
    byte B1;
    long Long1;
    byte B2;
    byte B3;
    long Long2;
}
 
public struct Struct3
{
    byte B1;
    byte B2;
    byte B3;
    long Long1;
    long Long2;
}

Решение задачи: «Задачка для новичков»

textual
Листинг программы
Marshal.SizeOf<T>()
//Заменить
Marshal.SizeOf(typeof(T))

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


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

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

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