我对结构这个对象的认识

《你不会时,它是座山;你学会时,它是张纸》,与大家共勉!

 

昨天,看到一篇有关结构的博文,引起了自己的共鸣。自己也曾为此思考了好长的一段时间,这个东西有什么用?在什么情况下用?有什么独到之处?各种书籍对此笔墨不多,一带而过。后来自己在机器上来回编码,写着写着感受就不一样了。现在,我就将自己的感受写出来,博大家一笑!

 

什么是结构?为什么叫结构?自己认为《结构就是某种应用中一组相关成员的集合》。在程序中,有各种类型的成员,如果我们把为某种实现的相关成员,组织成一个对象,用起来就会即清楚又方便。

 

举例说,我们有一堆计算机零件,用来组装成不同的计算机,这表述起来很麻烦,又容易出错。如果把零件放入机箱,就好表述了,这个机箱就是结构。

我们可以用这个结构实例为:张三的计算机、李四的计算机、王五的计算机。

接着我们就可以这样说:张三计算机.硬盘;李四计算机.内存;王五计算机.CPU。说到这大概您已经有所心动了吧!下面是自己写的一段代码。

 

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        struct 结构                     // 定义结构
        {
            public string m姓名;        // 声明字段

            public decimal m数学分数;

            public decimal m物理分数;

            public decimal m化学分数;

            public decimal 总分         // 属性
            {
                get
                {
                    return m数学分数 + m物理分数 + m化学分数;
                }
            }

            public string 评价()        // 方法
            {
                if ( m数学分数 + m物理分数 + m化学分数 >= 180 )
                {
                    return "及格";
                }
                else
                {
                    return "不及格";
                }
            }
        }

        static void Main(string[] args)
        {
            结构 综合评定 = new 结构();   // 实例      


            综合评定.m姓名 = "张三";      // 赋值

            综合评定.m数学分数 = 90;
           
            综合评定.m物理分数 = 80;
           
            综合评定.m化学分数 = 70;


            Console.WriteLine("{0}  数学: {1}  物理:{2}  化学:{3}  总分:{4};评价:{5}", 综合评定.m姓名, 综合评定.m数学分数.ToString(), 综合评定.m物理分数.ToString(), 综合评定.m化学分数.ToString(), 综合评定.总分.ToString(), 综合评定.评价());

            Console.WriteLine();


            综合评定 = new 结构();        // 重新实例(注意您应当理解为这个对象可以反复的使用)
                       
            综合评定.m姓名 = "李四";      // 赋值

            综合评定.m数学分数 = 65;

            综合评定.m物理分数 = 78;

            综合评定.m化学分数 = 27;


            Console.WriteLine("{0}  数学: {1}  物理:{2}  化学:{3}  总分:{4};评价:{5}", 综合评定.m姓名, 综合评定.m数学分数.ToString(), 综合评定.m物理分数.ToString(), 综合评定.m化学分数.ToString(), 综合评定.总分.ToString(), 综合评定.评价());

            Console.ReadKey();
        }
    }
}

这段代码光看是感受不深的,所以请您最好运行几次,就会体会到结构的独到这处了。也许您会说,用别的方法我也能做到。确实,条条大道通罗马,这就算是其中一条吧。

 

posted @   hxmhj  阅读(321)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示