zoukankan      html  css  js  c++  java
  • (原创)c#学习笔记05--变量的更多内容02--复杂的类型变量02--结构

    5.2.2  结构

      结构就是由几个数据组成的数据结构,这些数据可能具有不同的类型。根据这个结构,可以定义自己的变量类型。例如,假定要存储从起点开始到某一位置的路径,其中路径由一个方向和一个距离值(英里)组成。为简单起见,假定该方向是指南针上的一点(这样,方向就可以用上一节的orientation枚举来表示),距离值可以用一个double类型来表示。

      通过前面的代码,可以用两个不同的变量来表示该路径:

     orientation myDirection; 
     double       myDistance; 

      像这样使用两个变量,是没有错误的,但在一个地方存储这些信息应该更为简单(特别是在需要多个路径时,就更为简单)。

      使用struct关键字来定义结构,如下所示:

    struct <typeName> 
          { 
              <memberDeclarations> 
          }

      <memberDeclarations>部分包含变量的声明(称为结构的数据成员),其格式与往常一样。每个成员的声明都采用如下形式:

    <accessibility> <type> <name>;

      要让调用结构的代码访问该结构的数据成员,可以对<accessibility>使用关键字public,例如:

        struct route 
          { 
              public orientation direction; 
              public double       distance; 
          }

      定义了结构类型后,就可以定义新类型的变量,来使用该结构:

    route myRoute;

      还可以通过句点字符访问这个组合变量中的数据成员:

    myRoute.direction = orientation.north; 
    myRoute.distance = 2.5;

      我们看下示例,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Ch05Ex03
    {
        enum orientation : byte
        {
            north = 1,
            south = 2,
            east = 3,
            west = 4
        }
    
        struct route
        {
            public orientation direction;
            public double distance;
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                route myRoute;
                int myDirection = -1;
                double myDistance;
                Console.WriteLine("1) North
    2) South
    3) East
    4) West");
                do
                {
                    Console.WriteLine("Select a direction:");
                    myDirection = Convert.ToInt32(Console.ReadLine());
                } while ((myDirection < 1) || (myDirection > 4));
                Console.WriteLine("Input a distance:");
                myDistance = Convert.ToDouble(Console.ReadLine());
                myRoute.direction = (orientation)myDirection;
                myRoute.distance = myDistance;
                Console.WriteLine("myRoute specifies a direction of {0} and a distance of {1}", myRoute.direction, myRoute.distance);
                Console.ReadKey();
            }
        }
    }

      运行结果如下:

      

  • 相关阅读:
    @Controller与@RestControllerd的区别
    Maven基础知识
    linux安装全过程
    easyui——清空input中的值
    春招准备(三)——操作系统知识
    春招准备(二)——数据库方面知识
    春招准备(一)计算机网络基本知识总结
    使用Salt-ssh部署Salt-minion之源码安装(二)
    使用Salt-ssh部署Salt-minion之yum安装(一)
    SUSE10 SP4源码升级Python到2.6.6
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4911017.html
Copyright © 2011-2022 走看看