gpt4 book ai didi

C# 有什么方法可以通过代码访问静态类的类名?

转载 作者:太空狗 更新时间:2023-10-30 00:58:32 25 4
gpt4 key购买 nike

在静态类中你不能使用关键字“this”所以我不能调用this.GetType().GetFullName如果我有

public static class My.Library.Class
{
public static string GetName()
{
}
}

我可以从 GetName 中调用什么来返回 My.Library.Class

最佳答案

您可以通过以下方式获取预定类的类型:

typeof(My.Library.Class).FullName

如果你需要“声明这个方法的类”,你需要使用

MethodBase.GetCurrentMethod().DeclaringType.FullName

但是,这个方法有机会 will be inlined by the compiler .您可以将此调用转移到类的静态构造函数/初始化程序(永远不会内联 - log4net 推荐这种方法):

namespace My.Library

public static class Class
{
static string className = MethodBase.GetCurrentMethod().DeclaringType.FullName;
public static string GetName()
{
return className;
}
}
}

应用 [MethodImpl(MethodImplOptions.NoInlining)] 可能会有帮助,但你真的应该 read up on that if you considering it

HTH - 罗布

关于C# 有什么方法可以通过代码访问静态类的类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2674279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com