gpt4 book ai didi

C#如何从基类中的派生类中获取特定类型的所有字段?

转载 作者:行者123 更新时间:2023-12-04 10:26:32 25 4
gpt4 key购买 nike

我有一个看起来像这样的类:

public abstract class NetBehaviour
{
void setSyncFloat (SyncFloat[] values)
{
// Find all SyncFloat fields in the child
// class (the one that derived this class).

}
}

如何在这个类中从这个类派生的类中查找特定类型的所有字段?这似乎有点棘手,我猜我需要反射(reflection)。谁能帮帮我?

最佳答案

public abstract class NetBehaviour
{
void setSyncFloat (SyncFloat[] values)
{
// Find all SyncFloat fields in the child
// class (the one that derived this class).
var fields = GetType()
.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public)
.Where(fi => fi.FieldType == typeof(SyncFloat));
}
}
BindingFlags已包含在内,因为我假设您想要私有(private)字段。

请注意 GetType()将获得运行时类型,即子类类型。

关于C#如何从基类中的派生类中获取特定类型的所有字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60620324/

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