C# Int32是日期时间吗?
我正在编写一个控制台程序,我试图将C# Int32是日期时间吗?,c#,datetime,C#,Datetime,我正在编写一个控制台程序,我试图将console.ReadLine()转换为Int32,我无意中键入了WriteLine(),而不是键入ReadLine() 我(显然)遇到了一个错误,但它没有说预期的内容,而是说我无法将void转换为System.DateTime 为什么说Int32是System.DateTime?Convert.ToInt32有一个重载,它接受: 日期时间 布尔值 字节 煤焦 双重的 十进制 Int16 Int64 反对 串 还有更多信息,请参阅文档了解其余信息 当它无法
console.ReadLine()
转换为Int32
,我无意中键入了WriteLine()
,而不是键入ReadLine()
我(显然)遇到了一个错误,但它没有说预期的内容,而是说我无法将void
转换为System.DateTime
为什么说
Int32
是System.DateTime
?Convert.ToInt32
有一个重载,它接受:
- 日期时间
- 布尔值
- 字节
- 煤焦
- 双重的
- 十进制
- Int16
- Int64
- 反对
- 串
- 还有更多信息,请参阅文档了解其余信息
当它无法匹配任何重载(
void
不是有效选项)时,它只选择在确定没有有效重载的步骤中失败的一个重载,并在错误消息中使用该重载。在这种情况下,它碰巧选择了DateTime
重载,但它也可以很容易地选择其他任何一个参数重载。Convert.ToInt32
有一个重载,它接受:
- 日期时间
- 布尔值
- 字节
- 煤焦
- 双重的
- 十进制
- Int16
- Int64
- 反对
- 串
- 还有更多信息,请参阅文档了解其余信息
当它无法匹配任何重载(
void
不是有效选项)时,它只选择在确定没有有效重载的步骤中失败的一个重载,并在错误消息中使用该重载。在本例中,它碰巧选择了DateTime
重载,但它也可以很容易地选择其他任何一个参数重载。并不是说Int32
是System.DateTime
编译器只是在猜测:它认为您想要调用Convert.ToInt32(DateTime dt)代码>并调用Convert.ToInt32(void)
(是void
控制台的返回类型。WriteLine()
)
有很多重载:它们都是在没有参数的情况下定义的。
我不知道为什么它决定用DateTime来处理重载,而不是(例如)用字符串或布尔值来处理重载:在任何情况下,都没有不接受任何参数的重载,因此它无法编译代码,这并不是说
Int32
是System.DateTime
编译器只是在猜测:它认为您想要调用Convert.ToInt32(DateTime dt)代码>并调用Convert.ToInt32(void)
(是void
控制台的返回类型。WriteLine()
)
有很多重载:它们都是在没有参数的情况下定义的。
我不知道为什么它决定用DateTime来处理重载,而不是(例如)用字符串或布尔值来处理重载:在任何情况下,都没有不接受任何参数的重载,因此它无法编译代码。
Convert.ToInt32
有许多不同类型的重载方法。它可能默认为DateTime类型 Convert.ToInt32为不同类型提供了大量重载方法。它可能默认为DateTime类型 它不是说int
是DateTime
,而是说它不能将Console.WriteLine()
(即void
)的结果转换为System.DateTime
,这是有意义的,因为您不能将任何内容转换为某些内容Convert.ToInt32
有一个重载,它接受一个DateTime
值(见),它所做的只是抛出一个InvalidCastException
,这就是您看到的错误。我不知道它为什么选择这个重载。它不是说int
是DateTime
,而是说它不能将Console.WriteLine()
(即void
)的结果转换成System.DateTime
,这是有意义的,因为你不能将任何东西转换成某种东西Convert.ToInt32
有一个重载,它接受一个DateTime
值(见),它所做的只是抛出一个InvalidCastException
,这就是您看到的错误。我不知道为什么它会选择超负荷。它会按照特定的顺序选择它们吗?@Slappywag没有任何意义,当然没有你想要依赖的东西。它会按照特定的顺序选择它们吗?@Slappywag没有任何意义,当然没有你想要依赖的东西。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LinqIntegersDemo.cs
{
class Program
{
static void Main(string[] args)
{
int[] nums = new int[10];
var sorted = from c in nums orderby c descending select c;
int x = 0;
foreach (var n in nums)
{
Console.Write("Enter an integer >> ");
nums[x] = Convert.ToInt32(Console.WRITELINE());
}
}
}
}