c# 在main函数中怎么调用无参的构造函数

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;/*1.构建一个类Point,它提供两个公有的构... using System;
using System.Collections.Generic;
using System.Text;
/*
1.构建一个类Point,它提供两个公有的构造函数,一个没有参数的Point构造函数和一个有两个
* double参数的构造函数。另外在该类中提供一个静态方法计算两个点的直线距离,
* 传入参数为两个Point类实例。然后设计一个测试类来对Point类进行使用。
提示:先定义两个变量来存储Point点的X,Y坐标;无参的构造函数将X,Y坐标赋为0;
* 有参的构造函数将传入的参数分别赋给X,Y坐标。

*/
namespace test2._
{
class Point
{
public double x;
public double y;

public Point() { }

public Point(double x, double y)
{

this.x = x;
this.y = y;
}

public static double calculate(double x, double y, double a, double b)
{
double d;
d = Math.Sqrt((x - a) * (x - a) + (y - b) * (y - b));
return d;
}

static void Main(string[] args)
{
Point p1 = new Point();
Point p2 = new Point();

Console.WriteLine("please input 2 numbers:");

p1.x = double.Parse(Console.ReadLine());
p1.y = double.Parse(Console.ReadLine());
p2.x = double.Parse(Console.ReadLine());
p2.y = double.Parse(Console.ReadLine());
Console.WriteLine("两点距离是:" + calculate(p1.x, p1.y, p2.x, p2.y));
Console.ReadKey();
}

}

}
我想实现如果不输入数字,他默认为0 的程序 可是不知道该怎么改
我一不输入数字(之间按个回车)他就出现异常
亲帮忙看看 怎么改
要实现方法的重载
展开
 我来答
nandaowo
2009-12-13 · TA获得超过195个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:192万
展开全部

你这种写法是不行的,再者,这个和构造函数没关哈,因为你的数据是采用double.parse方法传入的。根据你的意思,最好还是放在构造函数里面比较好,我已经运行出来了,完整的代码如下,你看看

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication2

{

    class Point

    {

        public double x;

        public double y;

        public Point()

        {

            Console.WriteLine("please input the points' x & y:");

            try

            {

                this.x = double.Parse(Console.ReadLine());

            }

            catch(Exception e) 

            {

                this.x = 0;

            

            }

            try

            {

                this.y = double.Parse(Console.ReadLine());

            }

            catch (Exception e)

            {

                this.y = 0;

            }

        }

        public static double calculate(double x, double y, double a, double b)

        {

            double d;

            d = Math.Sqrt((x - a) * (x - a) + (y - b) * (y - b));

            return d;

        }

        static void Main(string[] args)

        {

            Point p1 = new Point();

            Point p2 = new Point();

            Console.WriteLine("两点距离是:" + calculate(p1.x, p1.y, p2.x, p2.y));

            Console.ReadKey();

        }

    }

}

BenHelloChen
2009-12-13 · TA获得超过235个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:243万
展开全部
解答:
可以使用double.tryParse这个函数。
p1.x = double.Parse(Console.ReadLine());
p1.y = double.Parse(Console.ReadLine());
p2.x = double.Parse(Console.ReadLine());
p2.y = double.Parse(Console.ReadLine());
改为
double doubleVal;
boolean result ;
result = Double.TryParse(Console.ReadLine(), out doubleVal);
if (result==true)
{
p1.x=doubleVal;
}
else
{
p1.x=0;
}
result = Double.TryParse(Console.ReadLine(), out doubleVal);
if (result==true)
{
p1.y=doubleVal;
}
else
{
p1.y=0;
}

result = Double.TryParse(Console.ReadLine(), out doubleVal);
if (result==true)
{
p2.x=doubleVal;
}
else
{
p2.x=0;
}
result = Double.TryParse(Console.ReadLine(), out doubleVal);
if (result==true)
{
p2.y=doubleVal;
}
else
{
p2.y=0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kkorange_kk
2009-12-13 · TA获得超过582个赞
知道小有建树答主
回答量:336
采纳率:0%
帮助的人:360万
展开全部
public Point()
{
this.x=0;
this.y=0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuld222
2009-12-13 · 超过26用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:52.3万
展开全部
public Point() {
x = y = 0;
}

只有该这里即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冒晟睿寸骏
2020-02-18 · TA获得超过2.9万个赞
知道大有可为答主
回答量:9857
采纳率:32%
帮助的人:1083万
展开全部
class
A()
{
public
A()
{
}
}
int
main()
{
A
a=new
A();//这里就是调用了无参构造函数
}
这种基本的问题网上搜下很多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邱之槐巨洲
2019-06-05 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:971万
展开全部
class
a
{
public
a()
{
}
public
a(int
a)
:this()
{
}
}
当a
a=new
a(1);

会先调用无参数的构造函数。在调用有参数那个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式