优秀的编程知识分享平台

网站首页 > 技术文章 正文

C#使用结构体计算圆形面积(源代码)

nanyue 2024-08-10 18:34:30 技术文章 13 ℃

结构是一种可以包含数据成员和方法成员的值类型数据结构。为结构分配数据时不需要从托管堆中分配内存,结构类型的变量直接包含了该结构的数据。

结构中可以包括构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等。但如果要同时包括上述几种成员,则应该考虑使用类,使用结构对于小的数据结构特别有用,能够节省大量的分配内存,如坐标系中的点。

程序界面:

程序代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class StructArea : Form
    {
        public StructArea()
        {
            InitializeComponent();
        }
        public struct Rect//定义一个圆形结构
        {
            //定义一个常量PI,也可以直接使用Math.PI
            public const double pi=3.1415926;            
            public double r;//圆形半径
            //在下面的代码中 我们为结构体写了1个带参数的构造函数.参数为半径
            //隐式的无参数的构造函数在结构中是已经存在的,所以不必添加1个无参数的构造函数
            //在结构体的构造函数中,必须要为结构体的所有字段赋值.
            public Rect(double bj)
            {
                //为字段进行赋值,在构造函数中必须为所有字段进行赋值
                r = bj;                               
            }
                        
            public double Area()
            {
                //也可以使用return Math.PI * r * r
                return pi * r*r;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //用户输入圆形半径
            double r = double.Parse(tex_r.Text.ToString());
            //使用new关键字来创建结构体对象,调用带有一个参数的构造函数
            Rect rect = new Rect(r);
            //调用结构体对象中计算面积的方法,将结果转换为字符串进行输出
            tex_result.Text = rect.Area().ToString();

        }
    }
}

结语:

结构是值类型,它在栈上分配数据,并且结构的赋值将分配产生一个新的对象,而类是引用类型。它在堆上分配数据,对类的对象进行赋值时只是复制了引用,它们都指向同一个实际对象分配的内存。

在结构中隐式的构造函数默认存在,该代码为结构体写了1个带参数的构造函数public Rect(double bj),为字段进行赋值,值得注意的是在结构体的构造函数中,必须要为结构体的所有字段赋值,否则会报错。

喜欢的请关注和收藏!

Tags:

最近发表
标签列表