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,调用对象

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

  • 相关阅读:
    超时时间已到。在操作完成之前超时时间已过或服务器未响应 shiney
    C#的映射机制 shiney
    C#用OLEDB导入问题总结 shiney
    SQL中的isnull shiney
    单虚拟机搭建zookeeper集群
    shell与sqlplus交互
    servlet
    迷你MVVM框架 avalonjs 入门教程
    classpath 'com.android.tools.build:gradle:6.7
    new ArrayList json.parse
  • 原文地址:https://www.cnblogs.com/momj/p/14397141.html
Copyright © 2011-2022 走看看