永发信息网

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

答案:1  悬赏:20  手机版
解决时间 2021-04-28 16:36
  • 提问者网友:人傍凄凉立暮秋
  • 2021-04-28 11:34

小弟以前是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个问题了,希望给我讲讲构造函数的作用,构造函数的语法。

最佳答案
  • 五星知识达人网友:青尢
  • 2021-04-28 12:21

①、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。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯