Переопределить ToString () в asp.net c #, основы. Doesn'twork - PullRequest
1 голос
/ 29 января 2010

Привет, у меня есть aspx по умолчанию. Я хочу протестировать переопределяющие методы по умолчанию, такие как ToString (). Всякий раз, когда я использую ToString (), я думал, что следующий код должен добавить «мой текст» ;? почему нет?

public partial class test : System.Web.UI.Page
{

    public override string ToString()
    {
        return base.ToString() + "my text"; 
    }


    protected void Page_Load(object sender, EventArgs e)
    {

        object test = 3333;
        Response.Write( test.ToString());
    }
}

Ответы [ 4 ]

6 голосов
/ 29 января 2010

Вы хотите позвонить

this.ToString();

или просто

ToString();

То, что вы сделали, создали object с именем test, а не с типом test, и назвали ToString по умолчанию object (в данном случае int). 1013 *

В качестве альтернативы, если вы хотите создать другую страницу с типом test:

test newPage = new test();
test.ToString();
5 голосов
/ 29 января 2010

Как все говорили, вы отвергаете неправильный метод. Если я правильно понимаю, что вы пытаетесь достичь, то, возможно, более подходящий метод расширения:

public static class ObjectExtensions
{
    public static string ToCustomString(this object instance)
    {
        return instance.ToString() + "whatever";
    }
}

public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        object test = 3333;
        Response.Write(test.ToCustomString());
    }
}
1 голос
/ 29 января 2010

Объект test это не ваш класс, это просто объект.

0 голосов
/ 29 января 2010

Я бы хотел, чтобы вы переписали свой код в

protected void TestWrite(object sender, EventArgs e)
{
    test test = new test();

    System.Diagnostics.Trace.Write(test.ToString());
}

, а затем напишите

protected void TestWrite(object sender, EventArgs e)
{
    test test = new test();

    object testObject = test;

    System.Diagnostics.Trace.Write(testObject.ToString());
}

Вы будете вызывать перезаписанный метод tostring.

Мы называем это «динамическое связывание» в объектно-ориентированном программировании. Пожалуйста, будьте уверены в этом предмете, если вы хотите понять, что на самом деле означает Объект в информатике.

И ... как сказал Unsliced:

«Объектный тест - это не ваш класс, это просто объект. "

Удачи

...