How to know Class <T>? Is there a way for Intellisense to autocomplete <T>?

Viewed 87

I have been using a 2d engine called NEZ. They use a List of class objects called "components" that are attached to an entity. Component is a public class that can be inherited.

Like let's say:

public class Ninja : Component

This is the Code:

/// <summary>
/// Adds a Component to the components list. Returns the Component.
/// </summary>
/// <returns>Scene.</returns>
/// <param name="component">Component.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
public T AddComponent<T>(T component) where T : Component
{
    component.Entity = this;
    Components.Add(component);
    component.Initialize();
    return component;
}

/// <summary>
/// Adds a Component to the components list. Returns the Component.
/// </summary>
/// <returns>Scene.</returns>
/// <typeparam name="T">The 1st type parameter.</typeparam>
public T AddComponent<T>() where T : Component, new()
{
    var component = new T();
    component.Entity = this;
    Components.Add(component);
    component.Initialize();
    return component;
}

So the thing that is annoying is that Visual Studio doesn't give me a list of class objects that have the Component in them.

So, how would I know that _animator = Entity.AddComponent<SpriteAnimator>(); is a Component?

Besides that obvious answer that I would have to look at each .CS file and see if they inherit the Component class.

The question is: The object in <T> doesn't auto complete or doesn't even give me a possible items to fill the blank.

Is there a way for IntelliSense to search for each object that inherits the class Component?

If not, do you know if other IDE or intelli-tool (like Resharper) does the job?

I'm using Visual Studio 2019 with Roslynator Refactorings addon and also using Visual Assistance from Tomatoes Software.

0 Answers
Related