永发信息网

问个关于C#编程 构造函数的问题 紧急

答案:1  悬赏:20  手机版
解决时间 2021-04-28 16:36

小弟以前是VB编程,现在学C#学出问题了,帮忙哈,我就以C#里面的“结构”概念讲述我的问题吧

代码:

using System;

using System.Collenctions.Generic;

using System.Text;

namespace Chap8

{

calss program

{

struct Round (这里我新建了一个有关于计算圆面积的结构)

{

public double r; (圆的半径)

public Round(double x) (构造函数,负责初始化圆的半径)

r=x

public double Area() (求圆的面积的功能函数)

return Math.PI * r * r;

static void Main(string[] args)

Round myRound1; 问题 ① !

myRound1.r=2; 问题② !

Console.WriteLine("一号圆的面积为: {0}",myRound1.Area()); 问题③!

Round myRound2=new Round(2); 问题④!

Console.WriteLine("一号圆的面积为: {0}",myRound2.Area());

Console.WriteLine();

}

}

}

好了,下面就是问题了:

问题①里面声明的那个变量是指在结构里面声明这个变量吗?这个变量在整个程序中好像都没被调用啊?它起一个什么作用???

问题②里面myRound1.r=2;这是什么语法?变量。变量=值?那个点是什么作用?

问题③里面myRound1.Area()为什么也加了一个点,我知道在这句里面是运行(或调用)函数Area(),但是为什么不直接调用而要加一个点呢?

问题④里面Round myRound2=new Round(2);是创建新变量赋值并调用构造函数进行初始化,但是赋的值是函数的值吗,可是构造函数的参数为二时仅仅只是将变量r的值赋为2,在编写的时候并没有返回值啊,那这个变量被赋的是什么值?

还有,构造函数我不太清楚,解决了以上4个问题了,希望给我讲讲构造函数的作用,构造函数的语法。

最佳答案

①、Round myRound1;是在函数自己的栈内存中预先分配一个内存空间用来存放这个变量,并没有调用它的构造函数。这个变量实际上就是一个Round型的实例对象了,后面的问题如果你明白了,就知道其实这个变量有使用过。


②、myRound1.r=2;这是典型的面向对象编写风格,你有VB的基础应该能明白啊,就是MyRoud1内的r成员被赋值为2。那个点是指明这个r是MyRound1内部的r而不是其他地方的r。


③、Area()也是Round结构的成员,因此也用MyRound1.Area()这样的写法,表示调用的是MyRound1内的Area()而不是别处的Area()。


④、Round myRound2=new Round(2);是在托管内存中创建一个Round对象实例,但是因为用了new操作,因此Round类的构造函数public Round(double x)被隐式调用了,也就是通过r=x;把那个(2)赋值给内部的r了。


不知道我说清楚了没有,另外,在C#中,最好避免用struct而尽量采用class。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在厂子被迫交了保险,到时候辞职能不能转家
星辉美发地址在什么地方,想过去办事
谁知道怎么下载游戏并安装?
QQ三国升张飞用8介的什么BB升最好
农行卡可以异地注销吗,农业银行的银行卡怎么
关于,梦幻西游藏宝阁卖号.需要什么费用么.需
吃坚果对身体有好处吗?
如何用电脑杀内存卡病毒
海洋文化书店地址在哪,我要去那里办事
ai cs6版本,自动保存在哪里设置,不要从网上
怎样培育粉玫瑰?
关于浪子回头的名言,有首歌叫《天堂不属于我
如果到了反潮季节,木地板会不会出现渗水或发
青少年应该怎样练弹跳
这个是什么意思啊?
推荐资讯
一个让我无法忘记的人,我该怎么去忘记
利川火车站-进站口在什么地方啊,我要过去处
中国hini最新疫情咋么样
还有什么无聊的问题我可以问?
请假最好的借口
qq 黑占有啥用?
阿木嘎郎图音呼都嘎我想知道这个在什么地方
我QQ号不记得密码了.怎么办?
2008年我国财政支出总情况
叶县经济适用房价格
世界环保 我国的做法和各国的做法
求解》求三拜四是什么意思,求三拜四什么生
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?