为什么不呢?存在ToFloat或Object.ToInt()
本文关键字:Object ToInt ToFloat 存在 为什么不 | 更新日期: 2023-09-27 18:15:23
Tostring()给出了实例的字符串表示?是因为我们觉得没有必要做任何从object到int/float的转换吗?
几乎任何对象都可以转换为字符串(在最坏的情况下,您可以将对象转换为其类名)。但是,对于int或float就不能这么说了。如何将字符串"asdf"转换为浮点数?或者将代表游戏中NPC的对象转换为int?
顺便说一下,如果你找到了将任何对象转换为int的方法,没有人会阻止你编写自己的扩展方法:public static class ObjectExtensions
{
public static int ToInt32(this object obj)
{
return 42;
}
}
// (...)
object o = new object();
int i = o.ToInt32();
如果你能解释如何将System.Windows.Forms.TextBox
转换为浮点数-我很想知道。
为什么任何Object
都可以转化为Int32
?不需要将此方法添加到Object
本身。如果您认为对象可以转换为int
,请使用适当的方法或强制转换对象:
object obj = 1;
int num = (int) obj;
或
obj = "1";
num = System.Convert.ToInt32(obj);
或者(如果明显是String
)
string str = "1";
num = int.Parse(str);
但是,您可以使用convert类转换可以转换的对象(例如转换为Int):
object o = new object();
o = "1234";
int i = Convert.ToInt32(o);
这是因为编译器不支持.toInt()
而支持.toString()
可以将数字转换为字符串,但不能将字符串转换为数字。这就是为什么编译器不支持它。
您可以使用int.parse
或Convert.ToInt32
来处理无效的数字部分(主要是null)
编译器可以处理Convert.ToInt32("abc")
但不能处理("abc").toInt();
如果你不知道,有一个静态类Convert(它包含。tofloat和。toint等方法)