如何重构此代码(C#,Types)

4 c# types game-engine unity-game-engine

首先,我对问题的标题表示道歉.我不太确定我要做的是什么,我试图完成,所以我会直截了当.

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

在这方面,我想改变这段代码:

Rigidbody r = obj.GetComponentOfType(typeof(Rigidbody)) as Rigidbody;
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

Rigidbody r = obj.GetComponentOfType<Rigidbody>();
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

对不起,如果我的问题看起来很模糊,那么关于这个主题的任何亮点都会很棒

Jon*_*øgh 6

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

public T GetComponentOfType<T>()
{
    return (T) GetComponentOfType(typeof(T));
}
Run Code Online (Sandbox Code Playgroud)