使用物体来确定是否成熟

时间:2015-07-17 09:06:49

标签: c# object

我正在尝试解决我在网站上发现的一些问题,并且已经感到困惑。 它是这样的:写一个C#程序检查输入的年份是否是闰年。当A年除以4.如果余数变为0,那么年份称为闰年..

提供的解决方案是:

/*
 * C# Program to Check Whether the Entered Year is a Leap Year or Not
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Program
{
    class leapyear
    {
        static void Main(string[] args)
        {
            leapyear obj = new leapyear();
            obj.readdata();
            obj.leap();
        }
        int y;
        public void readdata()
        {
            Console.WriteLine("Enter the Year in Four Digits : ");
            y = Convert.ToInt32(Console.ReadLine());
        }
        public void leap()
        {
            if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
            {
                Console.WriteLine("{0} is a Leap Year", y);
            }
            else
            {
                Console.WriteLine("{0} is not a Leap Year", y);
            }
            Console.ReadLine();
        }
    }
}

所以,在第一行,他们宣布了leapyear。看来这是一种类型,不是吗?或者提到班级名称? 然后他们称之为'obj',然后引用obj.readdata等。

我很失落这里发生的事情,如果有人可以帮我解释一下这个问题吗?谢谢

4 个答案:

答案 0 :(得分:1)

您的示例代码很奇怪。如果我进行代码审查,它会引发至少两个标志。也许它是由Java编码器编写的?考虑这个例子,也许它更容易理解:

using System;

namespace Program
{
  // this is a class. Because there are no free functions in C#,
  // everything has to be in a class.
  internal static class LeapYearFinderApplication
  {
    // this is the main entry point for your application
    internal static void Main()
    {
      Console.WriteLine("Enter the Year in Four Digits : ");

      var inputYear = Convert.ToInt32(Console.ReadLine()); 

      var inputYearIsLeapYear = IsLeapYear(inputYear);

      if (inputYearIsLeapYear)
      {
        Console.WriteLine("{0} is a Leap Year", inputYear);
      }
      else
      {
        Console.WriteLine("{0} is not a Leap Year", inputYear);
      }

      Console.ReadLine();
    }

    internal static bool IsLeapYear(int year)
    {
      return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    }
  }
}

答案 1 :(得分:0)

这里leapyear只是你的app类的名字。它被实例化,因此它可以调用函数readdata和leap。

尝试在没有leapyear的情况下调用readdata,它将无法正常工作,因为它在类leapyer中。

我希望它能帮到你!

答案 2 :(得分:0)

这很有趣!刚刚完成第一个:) https://projecteuler.net/

答案 3 :(得分:-1)

在第一行,leapyear是一个clsaa,obj是Main(静态)函数中的类leapyear的对象。

因此,在静态函数中,非静态成员(readdata()和leap())需要引用。