【问题标题】:entered dateTime by user in c#用户在c#中输入日期时间
【发布时间】:2019-12-02 15:24:18
【问题描述】:

我想让用户通过类和 DateTime 方法输入日期和时间。起初我想让用户只输入一个没有时间的雇用日期。

Console.Write("Please enter date Of hire");
DateTime dateOfHire = DateTime.Parse(Console.ReadLine());

然后将dateOfHire 发送到另一个类中的方法,方法是:

public DateTime DateOfHire
{
        set { }
        get
        {
            Console.WriteLine( dateOfHire.ToString("D")); // output: 24, december 2042
        }
}

我在get{} 中遇到错误,因为我必须使用return 我该如何使用它?如果我写 return dateOfHire.ToString("D"); 我也报错了。

【问题讨论】:

  • DateOfHire 属性的返回类型是 DateTime 并且您正在返回字符串。您应该仔细检查编译器错误,它应该足以说明问题所在。
  • 在属性 getter 中进行用户 IO 可能不是一个好主意
  • @gp。错误消息是:“Employee.DateOfHire.get”:并非所有代码路径都返回值
  • 您正在尝试创建一个属性,但您的 setter 没有执行任何操作,并且您的 getter 没有返回任何内容。我建议您查看 C# 中的哪些属性 - docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…
  • 如果您只想打印给定日期,请在您的类中创建一个静态方法,例如 public static void PrintDate(DateTime date) 并将您的 WriteLine 语句放入其中。

标签: c# class datetime


【解决方案1】:

你写的方式,DateOfHire 不是一个方法,它是一个属性。该属性正在尝试作用于一个名为 dateOfHire 的局部成员变量,该变量在范围内不存在。所以,难怪你会出错。

尝试将DateOfHire 更改为正确的方法。您需要使用参数将本地值 dateOfHire(从 Parse() 获得)传递到方法中。

public void DateOfHire(DateTime dateOfHire)
{
   Console.WriteLine(dateOfHire.ToString("D"));
}

此外,DateOfHire 不能像您的属性定义的那样具有 DateTime 的返回类型。这是因为您没有返回任何内容,您只是将结果写入控制台。所以对于你的方法,void 返回类型是隐含的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多