• 使用struct与使用class初始化对象效率对比


    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp4
    {
        public struct A1 {
            public int a { get; set; }
            public int b { get; set; }
            public int c { get; set; }
            public int d { get; set; }
    
    
        }
    
        public class B1
        {
            public int a { get; set; }
            public int b { get; set; }
            public int c { get; set; }
            public int d { get; set; }
    
    
        }
        class Program
        {
            static void Main(string[] args)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                for (int i = 0; i < 10000000; i++)
                {
                    var A = new A1();
                }
                watch.Stop();
                Console.WriteLine(watch.ElapsedMilliseconds);
                watch = new Stopwatch();
                watch.Start();
                for (int i = 0; i < 10000000; i++)
                {
                    var B = new B1();
                }
                watch.Stop();
                Console.WriteLine(watch.ElapsedMilliseconds);
                Console.Read();
    
    
            }
        }
    }
    

    执行结果  

    1. struct在栈里面,class在堆里面。

    2. struct不支持继承。

    3. struct 不能有参数为空的构造函数,如果提供了构造函数,必须把所有的变量全都初始化一遍

    4. 不能直接初始化变量。

    5. struct是值类型,class是引用类型,这是最本质区别。

    6. struct轻量级,class重量级。

    7. 当涉及数组操作时,struct效率高,涉及collection操作时,class效率高

  • 相关阅读:
    【bzoj5110】Yazid的新生舞会
    【2018.12.17】NOI模拟赛4
    【CTSC2010】产品销售(bzoj1920)
    自创模拟赛集合
    【基础操作】FFT / DWT / NTT / FWT 详解
    【2018.12.10】NOI模拟赛3
    【CTSC2009】移民站选址
    【THUSC2016】成绩单(bzoj4897)
    【基础操作】凸包
    【2018.11.26】玄机 / 画心 / 求索
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/6999716.html
Copyright © 2020-2023  润新知