Dzwebs.Net

撰写电脑技术杂文十余年

在c#中如何使用结构体Struct

Admin | 2012-6-20 6:14:13 | 被阅次数 | 9314

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  一、结构体概述

  首先说明,结构体是值类型。

  结构是使用 struct 关键字定义的,结构如下:

  struct 结构名
  {
  }

  结构具有以下特点:

  结构是值类型,而类是引用类型。与类不同,结构的实例化可以不使用 new 运算符。结构可以声明构造函数,但它们必须带参数。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。结构可以实现接口。结构在定义变量时不能给定初始值。

  如果要在结构中使用构造函数则必须给所有的变量赋值(在构造函数中直接给变量赋值而不是给变量的属性赋值,因为在未赋值之前属性是没有值的所以不能直接给属性)

  所有的结构都隐式继承自ValueType类,不需要显示指定;结构的继承列表中只允许有接口。结构的继承是三层的:object >> valuetype >> "结构" 。

  二、c#结构体Struct的简单例子

  public static void Main(string[] args)
        {
          
            DataInfo info;
            info.i = 5;
            Console.WriteLine(info.i);
            Console.ReadLine();
  }

  public struct DataInfo
        {
            public int i;
  }

  稍微复杂的例子如下:

  struct Employeestruct
    {
        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 int gongzhi;
        public int Gongzhi
        {
            get { return gongzhi; }
            //set { gongzhi = value; }
        }
        //有参数构造函数
        public Employeestruct(string _name, int _age, int _gongzhi)
        {
            //如果要在结构中使用构造函数则必须给所有的变量赋值(在构造函数中赋值)
            this.name = _name;
            this.age = _age;
            this.gongzhi = _gongzhi;
        }
    }

    //使用结构

    class Program
    {
        static void Main(string[] args)
        {

            ////实例化Employeestruct结构
            //Employeestruct empstruct = new Employeestruct("Steven", 22, 10000);
            //Console.WriteLine("姓名:{0}\n年龄:{1}\n工资:{2:C2}", empstruct.Name, empstruct.Age, empstruct.Gongzhi);
            Console.Read();
        }
    }


该杂文来自: 网站开发杂文

上一篇:C#收集局域网机器的IP地址的代码

下一篇:c#拆箱与装箱实例代码

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计