如何更改默认自定义类输出

时间:2016-06-30 07:39:23

标签: c#

以下是我要尝试的内容:System.Stringclass,其中包含一系列字符,如果我们要创建一个字符串然后将其打印出来:

String text = "Hello world!";
Console.WriteLine(text);

输出将是Hello World!

现在我可以说我自己做了class

public class Output 
{
    string aProperty;
    int Count;
    ...
}

如果我要创建该类型的new object并尝试将其写出来:

Output output = new Output();
Console.WriteLine(output);

我会回来的:

Namespace.Output

我如何更改此内容以便始终打印Output.aProperty的内容而不是默认文字?

5 个答案:

答案 0 :(得分:4)

textView.setBackgroundColor(android.R.color.transparent); 方法只是简单地写出对象的WriteLine返回的内容。 ToStringToString类中被定义为(虚拟),因此您需要覆盖它以获得“自定义”输出:

Object

答案 1 :(得分:2)

您只需要覆盖ToString()方法(virtual的{​​{1}}方法):

object

或者更好的C#6:

public class Output 
{
    string aProperty;
    int Count;

    public override string ToString()
    {
        return "I am an Output with aProperty: " + aProperty + " and Count " + Count;
    }
}

答案 2 :(得分:2)

覆盖$variable="2016-01-07"; $lastChars = substr($variable, -2); if($lastChars === "07"){ ... } 方法

ToString

答案 3 :(得分:2)

public override string ToString()
{
    return aProperty;
}

当您使用调试器

时,此技术也非常有用

答案 4 :(得分:2)

你在那里做的是调用ToString()方法。所有clases都有一个ToString。默认情况下,它们具有从object类中获取的那个,即命名空间。

所以你只需要覆盖你班级的ToString:

public class Output 
{
    string aProperty;
    int Count;
    ...
    public override string ToString()
    {
        return aProperty; //Or whatever you want
    }
}

如果您将Ouput对象放在列表框,组合框等上,这也会修改您看到的内容