从泛型类型化类中确定方法参数类型
本文关键字:方法 参数 类型 泛型 泛型类 泛型类型 类型化 | 更新日期: 2023-09-27 18:30:07
我有以下情况:
public class CustomDataGridView<T> : DataGridView
{
method1();
...
}
class ChannelsDataGridView : CustomDataGridView<Channel>
{
...
}
class NetworksDataGridView : CustomDataGridView<Network>
{
...
}
我需要一种方法:
public void Method(TYPE sender)
{
sender.method1();
}
这个方法中的TYPE应该是什么,或者我如何实现这个功能?
您似乎想要一个通用方法:
public void Method<T>( CustomDataGridView<T> sender )
注意,如果这是在一个已经使用T
作为泛型参数的泛型类中,则应该使用不同的字母:
public void Method<U>( CustomDataGridView<U> sender )
一个通用方法就可以做到这一点:
public void Method<T>(CustomDataGridView<T> sender)
MSDN有一些很好的正式文档;但对于一些更有趣的用例,Joel Abrahamsson有一篇很好的博客文章。
您也应该将Method
定义为泛型:
public void Method<T>(CustomDataGridView<T> sender)
{
sender.method1();
}