-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 を floatに変換する方法を説明できる場合はSystem.Windows.Forms.TextBox、知りたいです。

于 2013-05-24T10:28:20.330 に答える
1

Objectに変換可能にする必要があるのはなぜ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 に答える
1

ただし、Convert クラスを使用して、変換可能なオブジェクトを (たとえば、Int に) 変換できます。

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

コンパイラがサポートしておらず、サポート.toInt()しているためです.toString()

数値を文字列に変換できますが、文字列を数値に変換することはできません。そのため、コンパイラはそれをサポートしていません。

無効な数値部分 (ほとんどが null) を処理できる、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 に答える