zoukankan      html  css  js  c++  java
  • C#_基础_结构Struct(八)

    一般情况下,不建议使用结构。

    结构中可以包含多种不同类型的字段,方法

    定义一个结构:

    1  public struct Person
    2         {
    3             public string _name;//命名规范字段前前加下划线
    4            public   int _age;
    5            public   char _gender;
    6            public QQState _state; //枚举类型
    7         }

    结构声明:调用

    1  //声明结构变量,实质上和枚举一样,int 都是变量,
    2              Person zhangsan;
    3              zhangsan._name = "zhangsan";
    4              zhangsan._age = 14;
    5              zhangsan._state = QQState.Busy;
    6              zhangsan._gender = '';

    结构中也可以有方法:

     1  public struct Person
     2         {
     3             public string _name;//命名规范字段前前加下划线
     4            public   int _age;
     5            public   char _gender;
     6            public QQState _state; //枚举类型
     7             public void Run()
     8            {
     9                Console.WriteLine("Run");
    10            }

    调用:

    zhangsan.Run();

    结构特点:

    结构和类不一样,不可以new对象。直接声明对象就可以

    结构是值类型,所以对象只在栈中,不会在堆中开空间

    结构没有默认的构造函数。

    给结构加构造方法:必须把结构中所有的字段都赋值才可以

     1  /// <summary>
     2         /// 没有字段的情况
     3         /// </summary>
     4         public struct Student
     5         {
     6             public Student()
     7             {
     8 
     9             }
    10             public void Study()
    11             {
    12 
    13             }
    14         }

    结构new对象:

      Student s = new Student();

     1  /// <summary>
     2         /// 有字段的结构
     3         /// </summary>
     4         public struct Person
     5         {
     6             public string _name;//命名规范字段前前加下划线
     7             public int _age;
     8             public char _gender;
     9             public QQState _state; //枚举类型
    10           
    11             public Person(string name)
    12             {
    13                 this._name = name;
    14                 this._age = 12;
    15                 this._gender = '';
    16                 this._state = QQState.Busy;
    17 
    18             }
    19 
    20             
    21         }
  • 相关阅读:
    etcd的原理分析
    (转)Linux sort命令
    随机森林
    python 类的定义和继承
    python random
    Spark源码阅读(1): Stage划分
    Mac 上安装MySQL
    Python 删除 数组
    在循环中将多列数组组合成大数组
    准确率 召回率
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9163994.html
Copyright © 2011-2022 走看看