是否可以在不指定类型的情况下引用泛型类对象?

时间:2021-02-27 00:39:37

标签: c# generics

我有这个通用类:

public class Grid<TGridObject> {

    public int Width { get; set; }
    public int Height { get; set; }
    public float CellSize { get; set; }
}

我想创建另一个名为GridDebugger的类,它的作用是根据Grid类的设置和内容绘制线条和文本。 所以最终我会有这样的事情:

public class GridDebugger {
    
        private Grid<TGridObject> grid
        public void DebugGrid(){
         //debug the grid
        }
    }

问题是我当然不能用 TGridObject 声明,因为它不存在于当前内容中,我可以将该行更改为:

private Grid<bool> grid

现在我有一个 bool 网格,我可以调试它,但我想要一个通用的 gridDebugging 类,可以使用任何网格类型。

这可能吗?

谢谢

2 个答案:

答案 0 :(得分:1)

你是说下面的代码吗?

public class GridDebugger<TGridObject> {
    
        private Grid<TGridObject> grid
        public void DebugGrid(){
         //debug the grid
        }
    }

答案 1 :(得分:0)

如果您想使用 GridDebugger 调试任何网格类型,那么使用通用 DebugGrid 方法可能比使用通用网格成员更好。

public class GridDebugger
{
    //stuff
    public void DebugGrid<TGridObject>(Grid<TGridObject> grid) { //stuff }
}

此时您可以调试具有相同 GridDebugger 的任何类型的网格,只要没有特定于 TGridObject 类型的逻辑即可。

相关问题