首先,我为问题的标题道歉。我不太确定我想要完成的任务叫什么,所以我会直接说。

我目前正在使用 GDI+ 在 c# 中开发游戏引擎并实现了一个组件类。这个想法是任何游戏对象都可以附加多个组件(很像 Unity3D),我希望能够通过搜索它是什么类来找到任何类型的任何组件。

关于这一点,我想更改这段代码:

Rigidbody r = obj.GetComponentOfType(typeof(Rigidbody)) as Rigidbody;

改为看起来像这样:
Rigidbody r = obj.GetComponentOfType<Rigidbody>();

我该怎么做?

对不起,如果我的问题似乎含糊不清,任何关于这个话题的线索都会很棒!

最佳答案

这称为泛型方法。您可以创建一个重载来调用现有的基于类型的实现,如下所示:

public T GetComponentOfType<T>()
{
    return (T) GetComponentOfType(typeof(T));
}

关于c# - 如何重构此代码(C#,类型),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42629145/

10-10 13:31