如何将此代码(C++)移植到 C#?
template <class entity_type>
class State {
public:
virtual void Enter(entity_type*) = 0;
virtual void Execute(entity_type*) = 0;
virtual void Exit(entity_type*) = 0;
virtual ~State() { }
};
假设这真的是一个纯粹的抽象基类,它看起来像这样:
interface State<T>
{
void Enter(T arg);
void Execute(T arg);
void Exit(T arg);
};
但是,确切的参数传递约定很尴尬。如果不确切知道您想做什么,就很难准确地说出您应该在 C# 中做什么。可能,void FunctionName(ref T arg)
可能更合适。
某种东西:
interface State<T> : IDisposable
{
void Enter(T t);
void Execute(T t);
void Exit(T t);
}
public abstract class State<entity_type>
{
public abstract void Enter(entity_type obj);
public abstract void Execute(entity_type obj);
public abstract void Exit(entity_type obj);
}
This seems to work :D
你可以这样写
abstract class State<T> : IDisposable where T : EntityType
{
public abstract void Enter(T t);
public abstract void Execute(T t);
public abstract void Exit(T t);
public abstract void Dispose();
}
将您的 T 修复为 EntityType 类。