我有会员(或财产或方法或其他),我如何获得它所属的类名(C#)?

时间:2014-07-08 16:22:30

标签: c# .net

正如标题所述,怎么样?所有成员都是公开的,在课堂上没有静态成员。我一直在寻找一个答案并且没有提出任何问题,如果这是一个重复的标记,那么请指出我的答案。如果需要更多信息,请指定评论中需要的内容,我将提供。

2 个答案:

答案 0 :(得分:0)

如果您有MemberInfo,则可以使用DeclaringType属性。

MemberInfo mi = typeof(string).GetMember("Length")[0];
Type original = mi.DeclaringType; //original is now System.String

答案 1 :(得分:0)

System.Object类具有GetType,它返回调用此方法的类的类型。 由于所有类都是从它派生的,因此您可以从任何实例成员调用GetType。

如果需要String,则调用GetType()。ToString()。以下是示例代码。

    [TestClass]
public class UnitTest1
{
    [TestMethod]
    public void CalssNameFromMethod()
    {
        Debug.WriteLine( this.GetType().ToString());
    }
}