标题:请教一个关于结构类型的问题
只看楼主
王小萌萌
Rank: 4
来 自:河南郑州
等 级:业余侠客
帖 子:45
专家分:204
注 册:2011-12-21
结帖率:100%
已结贴  问题点数:10 回复次数:4 
请教一个关于结构类型的问题
下面是一个表示矩形的C#结构的代码,很基础很简单,但是中间有一段代码不知道是什么作用。请教高手!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rectangle
{
    struct Rectangle
    {
        public int x, y;            //坐标
        public int width, hight;    //矩形的宽和高
        public Rectangle(int a,int b,int w,int h)
        {
            x = a;
            y = b;
            width = w;
            hight = h;
        }
    }
    class Program
    {
        public static void Main()
        {
            Rectangle myRect;
            myRect.x = 20;
            myRect.y = 30;
            myRect.width = 200;
            myRect.hight = 300;
            Console.WriteLine("My Rectangle Is:");
            Console.WriteLine("x={0},y={1},width={2},hight={3}",myRect.x  ,myRect.y,myRect.width,myRect.hight );
        }
    }
}
就是上面红色加粗的那一部分,在结构里面定义之后到下面的类又不能使用,不知道定义来做什么,去掉之后也没什么问题,很纳闷!求高手详细解答这段代码,非常感谢!
搜索更多相关主题的帖子: public 
2011-12-29 10:00
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:5 
只是提供两种赋值方式而已,目前代码是使用了直接赋值的方式,
myRect.x = 20;
myRect.y = 30;
myRect.width = 200;
myRect.hight = 300;
当然也可以使用这个构造方法,通过参数去赋值
public static void Main()
{
      Rectangle myRect = new Rectangle(20,30,200,300);  
      Console.WriteLine("My Rectangle Is:");
      Console.WriteLine("x={0},y={1},width={2},hight={3}",myRect.x  ,myRect.y,myRect.width,myRect.hight );
}
2011-12-29 16:31
王小萌萌
Rank: 4
来 自:河南郑州
等 级:业余侠客
帖 子:45
专家分:204
注 册:2011-12-21
得分:0 
回复 2楼 yhlvht
你的意思是说
public Rectangle(int a,int b,int w,int h)
        {
            x = a;
            y = b;
            width = w;
            hight = h;
        }
这段代码是另外一种赋值方法,对吗?
但是在这里重新赋值后的a,b,w,h在下面的函数里为什么不能用呢?
2011-12-30 11:23
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:5 
你可以把结构体看成是一个类,
public Rectangle(int a,int b,int w,int h)  (这就是这个类的有参构造方法),
public int x, y;  
public int width, hight;  (x,y,width,hight就是这个类中定义的属性)
下面main方法中,通过实例myRect,你可以调用到类中构造函数中的参数吗,当然不能,只能使用属性啊
2011-12-30 14:44
王小萌萌
Rank: 4
来 自:河南郑州
等 级:业余侠客
帖 子:45
专家分:204
注 册:2011-12-21
得分:0 
回复 4楼 yhlvht
呃。。。似懂非懂,我的专业知识太少了,不过我记住了。非常感谢!
2011-12-30 15:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-358834-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063164 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved