Чаму не Object.ToFloat або Object.ToInt () існуюць?

ToString() дае радковае ўяўленне асобніка? Гэта таму, што мы не адчувалі неабходнасці рабіць якія-небудзь пераўтварэнні ад аб'екта INT/паплаўка?

2

6 адказы

Практычна любы аб'ект можа быць ператвораны ў радок (у горшым выпадку, вы можаце пераўтварыць аб'ект з імем класа). Тым не менш, вы не можаце сказаць тое ж самае пра міжнар або паплаўка. Як бы вы пераўтварыць радок «ASDF» у паплавок? Ці аб'ект, які ўяўляе NPC ў гульні з міжнар?

Дарэчы, ніхто не замінае вам пісаць свой уласны метад пашырэння, калі вы знойдзеце спосаб пераўтварыць любы аб'ект у міжнар:

public static class ObjectExtensions
{
    public static int ToInt32(this object obj)
    {
        return 42;
    }
}

// (...)

object o = new object();
int i = o.ToInt32();
10
дададзена
Argh. Калі ласка, напішыце на простым англійскай мове. Нун спыняе вас ад напісання кода <> клас Test грамадскасць: аб'ект або Клас выпрабаванняў грамадскасці: Object . Але з-за спадчыну ад аб'екта патрабуецца, мова стваральнікі вырашылі, што напісанне кода адзначыўшы спадчыну - як быць відавочна - няма неабходнасці.
дададзена аўтар Spook, крыніца
Сэр. Але ёсць яшчэ адно пытанне для цябе! Пардон me..I наткнуўся на гэтае пытанне? Але не знайшлі ніякага адказу сэр. Тут :: "У ООП, усе класы ўспадкуюць ад класа Object, таму ў нас не пішуць Classname: Object?
дададзена аўтар Pratik Pattanayak, крыніца
Thanx шмат сэра
дададзена аўтар Pratik Pattanayak, крыніца

Калі вы можаце патлумачыць, як пераўтварыць System.Windows.Forms.TextBox да паплаўка - Я хацеў бы ведаць.

3
дададзена
Добры сэр! Дзякуй
дададзена аўтар Pratik Pattanayak, крыніца

Тым не менш, вы можаце пераўтварыць аб'ект, які можа быць канвертаваліся (для Int, напрыклад) з дапамогай класа Convert:

        object o = new object();
        o = "1234";
        int i = Convert.ToInt32(o);
1
дададзена

Чаму любы Object павінен быць канвертаваны ў Int32 ? Там няма неабходнасці, каб дадаць гэты метад Object сам па сабе. Калі вы лічыце, што аб'ект з'яўляецца зварачальным ў Int выкарыстоўваць адпаведны метад або прывядзенне аб'екта:

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

або

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

або(if it's clearly a String)

string str = "1";
num = int.Parse(str);
1
дададзена

Its because compiler does not support .toInt() and supports .toString()

Вы можаце пераўтварыць лік у радок, але не радкі на нумар. Тое, чаму кампілятар не падтрымлівае яго.

Вы можаце выкарыстоўваць int.Parse або Convert.ToInt32 , які можа апрацоўваць недапушчальныя лікавыя часткі (у асноўным анулюе)

Compiler will handle Convert.ToInt32("abc") but can not handle ("abc").toInt();

0
дададзена

Калі вы не ведаеце, ёсць статычны клас Convert для гэтага (ён утрымлівае такія метады, як .ToFloat і .ToInt)

0
дададзена
Аб забыліся! Дзякуючы @Pak сэр
дададзена аўтар Pratik Pattanayak, крыніца