将类型作为参数传递



我有一个方法,它接受某个继承类型的对象,并在内部数据结构中搜索它。。。

public (bool,Point) GetItemPosition(IMyBaseType type)
{
...
}

因此,上述方法的使用方式如下:

var (isFound, location) = myDataContainer.GetItemPosition(myDataItem);

在数据结构类中,我想使用搜索方法。但是,我不想创建所需数据项的实例(因为这有开销(——我只想将类类型作为值传递。目前,我正在创建一个数据项实例。。。

public bool AddTarget()
{
var (hasTarget, location) = GetItemPosition(new SomeDataItem().GetType() as IMyBaseType, 0, 0);
...
}

如何传递类类型本身?

使用泛型:

public (bool,Point) GetItemPosition<T>() where T: IMyBaseType
{
...
}

在该方法中,您可以将传入的类型称为T。例如,您可以使用is:检查object obj是否属于T类型

if (obj is T) { ... }

来电者看起来像:

GetItemPosition<SomeDataItem>()

相关内容

  • 没有找到相关文章

最新更新