-2

Tostring() 给出实例的字符串表示?是不是因为我们觉得不需要从 object 到 int/float 的任何转换?

4

6 回答 6

10

几乎任何对象都可以转换为字符串(在最坏的情况下,您可以将对象转换为其类名)。但是,您不能对 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();
于 2013-05-24T10:27:20.007 回答
3

如果您能解释如何将 a 转换System.Windows.Forms.TextBox为浮点数 - 我很想知道。

于 2013-05-24T10:28:20.330 回答
1

但是,您可以使用 Convert 类转换可转换的对象(例如转换为 Int):

        object o = new object();
        o = "1234";
        int i = Convert.ToInt32(o);
于 2013-05-24T10:35:53.267 回答
1

为什么 anyObject应该转换为Int32?无需将此方法添加到Object自身。如果您认为一个对象可以转换为int使用适当的方法或强制转换该对象:

object obj = 1;
int num = (int) obj;

或者

obj = "1";
num = System.Convert.ToInt32(obj);

或(如果它显然是 a String

string str = "1";
num = int.Parse(str);
于 2013-05-24T10:29:43.567 回答
0

这是因为编译器不支持.toInt()和支持.toString()

您可以将数字转换为字符串,但不能将字符串转换为数字。这就是编译器不支持它的原因。

您可以使用,int.parse或者Convert.ToInt32可以处理无效的数字部分(主要是空值)

编译器会处理Convert.ToInt32("abc")但不能处理("abc").toInt();

于 2013-05-24T10:29:42.710 回答
0

如果您不知道,这里有一个静态类 Convert(它包含 .ToFloat 和 .ToInt 等方法)

于 2013-05-24T10:29:52.230 回答