魔鬼中 2018-12-14 08:46 采纳率: 81.8%
浏览 398
已采纳

C#控制台程序,面向对象的问题请看图片

图片说明

不知道如何定义方法,如何使用方法。特别是定义一个方法,调用该函数时以特定格式输出这个很蒙逼。
谢谢!!

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-12-14 11:43
    关注
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Reflection;
    
    namespace Q717058
    {
        class Point
        {
            private double X { get; set; }
            private double Y { get; set; }
            private double Z { get; set; }
            private double T { get; set; }
            public Point(double x, double y, double z, double t)
            {
                X = x; Y = y; Z = z; T = t; 
            }
            public static implicit operator Point(string s)
            {
                double[] d = s.Split(' ').Select(x => double.Parse(x)).ToArray();
                return new Point(d[0], d[1], d[2], d[3]);
            }
            public override string ToString()
            {
                return string.Format("({0},{1},{2},{3})", X, Y, Z, T);
            }
            public void Print()
            {
                Console.WriteLine(this);
            }
            public double Distance(Point p)
            {
                return Math.Sqrt(new double[] { X - p.X, Y - p.Y, Z - p.Z, T - p.T }
                    .Select(x => x * x)
                    .Sum());
            }
            public void Move(char c, double n)
            {
                var prop = GetType().GetProperty(c.ToString().ToUpper(), BindingFlags.NonPublic | BindingFlags.Instance);
                if (prop != null)
                    prop.SetValue(this, (double)prop.GetValue(this, null) + n, null);
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Point p1 = (Point)Console.ReadLine();
                Point p2 = (Point)Console.ReadLine();
                string l3 = Console.ReadLine();
                p1.Move(l3[0], double.Parse(l3.Split(' ')[1]));
                p1.Print();
                Console.WriteLine("Distance={0}", p1.Distance(p2));
            }
        }
    }
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?