c#中泛型类的混淆

本文关键字:泛型类 | 更新日期: 2023-09-27 17:50:14

c#中的TProperty是什么?

我看到这样的代码:

public abstract class Myclass<T, TProperty> : .... 

我知道T是我们传递的类型的泛型。是否TPropertyT相同?

c#中泛型类的混淆

<>中的任何内容都是通用类型指示符。它的名字对编译器没有任何影响,但它应该对代码的可读性有意义。
就像Dictionary<TKey, TValue>一样。
当然,它必须在它的作用域中是唯一的,包括该作用域中的变量名。
请注意,类型指示符不是变量,但它们与变量名冲突(感谢Aravol对此的评论)。

TProperty是第二个泛型参数。

  • 与方法上的对象参数一样,名称必须是唯一的以区分它们
  • 泛型可以有多个参数
    • 根据c#语言规范,任何数字-例如参见Tuple<T1...T7, TRest>
  • 按照惯例,泛型参数名要么以大写"T"开头,要么以大写"T"开头。

从您提供的类的描述中:

public abstract class Myclass<T, TProperty> : .... 

似乎创建类的人打算在创建类时提供一个对象(T)和一个对象属性(TProperty)。

最好的猜测是这样的:

var mine = new Myclass<Generic.List, String>();

如果没有更多的代码或代码如何使用的上下文,很难判断。