我正在尝试将项目从 C++ 转换为 C#,但在 C++ 版本中使用了以下代码:
std::list<PlayerBase*>& AllPlayers = AutoList<PlayerBase>::GetAllMembers();
而 AutoList 只是一个头文件,如下所示
#ifndef AUTOLIST_H
#define AUTOLIST_H
#include <list>
template <class T>
class AutoList
{
public:
typedef std::list<T*> ObjectList;
private:
static ObjectList m_Members;
protected:
AutoList()
{
//cast this object to type T* and add it to the list
m_Members.push_back(static_cast<T*>(this));
}
~AutoList()
{
m_Members.remove(static_cast<T*>(this));
}
public:
static ObjectList& GetAllMembers(){return m_Members;}
};
template <class T>
std::list<T*> AutoList<T>::m_Members;
#endif
那么如何创建一个可以为我做同样事情的 C# 类,即选择类类型的所有对象:PlayerBase?