[英]Get a Static property from a class generic, where Interface contains the property name
当您有 function 时:
public interface IHasName
{
static string Name { get; }
}
//class{
public static string GetName<T>() where T : IHasName
{
return T.Name;
}
//}
这不起作用,只有当我将 static 更改为 public 并创建一个new T()
时。 用法必须是这样的:
public class Model: IHasName
{
public static string Name => "Niek";
}
var name = GetName<Model>();
您是否有通过 Generic 使用 static 属性的解决方案。
提前致谢!
这是.NET 6 中的预览功能,并且可能会在 .NET 7 中正确发布:
public interface IHasName
{
public static abstract string Name { get; }
}
public class Model : IHasName
{
public static string Name => "Foo";
}
class Foo
{
public static string GetName<T>() where T : IHasName
{
return T.Name;
}
}
在dotnetfiddle.net上查看。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.