C# 如何以string.format打印对象类型

C# 如何以string.format打印对象类型,c#,C#,我有一个狮子类,我想打印的类型 public override string ToString() { return String.Format("{0} This is a [{2}] Called {1}", SpeciesName, GoesBy ); } 我想说的是“猫,这是一只叫做Felix的[狮子]使用GetType().Name 鉴于您的代码中有以下内容: public class Lion : Cat { ... } 您只需获取

我有一个狮子类,我想打印的类型

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

    }
我想说的是“猫,这是一只叫做Felix的[狮子]

使用GetType().Name


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

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

如果没有看到类声明,很难准确回答您的问题。

假设您有一个继承自
Cat类的
Lion类

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

        public override string ToString()
        {
         return String.Format("{0} This is a  [{1}] Called {2}", base.GetType(),  this.GetType(), this.Name );   
        }
编辑:为了提供与其他解决方案不同的解决方案,此解决方案只提供
Cat
Lion
类的名称(不带命名空间)

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

Lion继承自Cat吗?
Lion
从哪里来?我在你的字符串中没有看到任何
Lion
。你的格式需要3个参数,但你只传递了2个。不。我只想知道如何打印对象的类型??Lion是我想要打印的类我在2分钟前回答了同样的问题…@Eval And Taylor Maxwell在你之前回答了同样的问题。你回答了同样的问题,可能是因为你没有看到其他答案。很可能,同样的事情发生在这里。@Eval:抱歉,我已经更改了我的答案,请参阅editStilling名称空间。例如animalKindom.Lion???@Francis Gall:你尝试过第二种解决方案吗?对我有效!也有效打印名称空间,例如AnimalKingdom.liuse使用类型上的一个属性(由GetType返回),该属性只返回类型名….可能是Type.name,但我记不起来了,msdn或intellisense会确认