魔鬼中 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));
            }
        }
    }
    

    图片说明

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

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?