zoukankan      html  css  js  c++  java
  • C#结构和类的区别

    1,类型

    结构:值类型;存储在栈中

    类:应用类型;存储在堆中

    2,声明语法

    结构:struct  类:class

    相关示例:

    //声明类 
    public class PersonClass
        { 
            //字段、属性、方法、构造函数
            //不赘述
        }
    //声明结构
    public struct PersonStruct
    {
            //字段、属性
            private string _name;
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
            private int _age;
            public int Age
            {
                get { return _age; }
                set { _age = value; }
            }
            private char _gender;
            public char Gender
            {
                get { return _gender; }
                set { _gender = value; }
            }
            public static void M1()
            {
                Console.WriteLine("我是结构中的静态方法");
            }
            public void M2()
            {
                Console.WriteLine("我是结构的非静态方法");
            }
            public PersonStruct(string name, int age, char gender)
            {
                //this.Name = name;
                //this.Age = age;
                //this.Gender = gender;
                this._name = name;
                this._age = age;
                this._gender = gender;
            }
    }    

    3,关于构造函数

    在类中,

    构造函数可以给字段赋值,也可给属性赋值;

    构造函数可以重载

    而在结构中.

    构造函数必须给全部字段赋值,且只能给字段赋值;不能选择性的赋值;

    4,默认构造函数

    相同点:结构和类,默认都有一个无参的构造函数.

    不同:

    当类中新写一个构造函数,默认的无参构造函数,被干掉;若需要,需手动添加默认无参构造函数

    在结构中新写的构造函数之后,默认的无参构造函数依然存在; 结构不能手动声明默认的构造函数

    有且只有两个构造函数,一个默认无参的构造函数,一个全参数的构造函数

    5,结构的new

    只做了一件事情,调用结构的构造函数

    6,继承和面向对象

    结构不能继承于类,类也不能继承于结构

    结构不具备面向对象的特征

    而类才是面向对象的产物

    7,调用对象

    结构需创建对象,才能调用结构中的非静态方法

  • 相关阅读:
    个人便签
    秒杀系统架构分析与实战
    NPOI大数据分批写入同个Excel
    js获取鼠标坐标位置兼容多个浏览器
    月薪3万的程序员都避开了哪些坑
    怎样理解阻塞非阻塞与同步异步的区别?
    JS中的prototype
    互联网——降级论
    fedora自带OpenJDK,所以如果安装官方的JDK的话要先删除OpenJDK
    cygwin 安装完后不能进入think问题,网上99%都是错误的
  • 原文地址:https://www.cnblogs.com/momj/p/14397141.html
Copyright © 2011-2022 走看看