如何在string.format中打印对象类型

时间:2014-03-01 16:03:52

标签: c#

我有一个Lion类,我想打印类型

    public override string ToString()
    {
     return String.Format("{0} This is a  [{2}] Called {1}", SpeciesName,   GoesBy );   

    }

我想说的是什么" Cat这是一只名为Felix的[狮子]

3 个答案:

答案 0 :(得分:2)

使用GetType()。名称

public override string ToString()
{
 return String.Format("{0} This is a  [{2}] Called {1}", GetType().Name, SpeciesName,   GoesBy );   

}

答案 1 :(得分:2)

假设您有Lion class,其继承自Cat class

然后在Lion class

        public override string ToString()
        {
         return String.Format("{0} This is a  [{1}] Called {2}", base.GetType(),  this.GetType(), this.Name );   
        }

编辑:为了提供与其他解决方案不同的解决方案,此解决方案仅为您提供CatLion类的名称(无命名空间)。

        public override string ToString()
        {
         return String.Format("{0} This is a  [{1}] Called {2}", typeof(Cat).Name,  typeof(Lion).Name, this.Name );   
        }

答案 2 :(得分:1)

鉴于您的代码中有以下内容:

public class Lion : Cat { ... }

您只需要获取Lion的基本类型即可显示这些内容。

return String.Format("{0} This is a [{1}] Called {2}", 
                     base.GetType().ToString(), //SHould give you Cat
                     this.GetType().ToString(), //Should give you Lion
                     this.GoesBy.ToString()); //Should give you Felix

虽然没有看到班级声明,但很难准确回答你的问题。