Tostring() はインスタンスの文字列表現を返しますか? object から int/float への変換を行う必要性を感じなかったからでしょうか?
6 に答える
事実上、すべてのオブジェクトを文字列に変換できます (最悪の場合、オブジェクトをそのクラス名に変換できます)。ただし、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();
a を floatに変換する方法を説明できる場合はSystem.Windows.Forms.TextBox
、知りたいです。
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);
ただし、Convert クラスを使用して、変換可能なオブジェクトを (たとえば、Int に) 変換できます。
object o = new object();
o = "1234";
int i = Convert.ToInt32(o);
コンパイラがサポートしておらず、サポート.toInt()
しているためです.toString()
数値を文字列に変換できますが、文字列を数値に変換することはできません。そのため、コンパイラはそれをサポートしていません。
無効な数値部分 (ほとんどが null) を処理できる、int.parse
またはこれを使用できます。Convert.ToInt32
コンパイラは処理Convert.ToInt32("abc")
しますが、処理できません("abc").toInt();
ご存じない場合は、そのための静的クラス Convert があります (.ToFloat や .ToInt などのメソッドが含まれています)。