日期:2014-05-18  浏览次数:21115 次

泛型变量怎么传递?
src是类Player中的泛型属性,定义如下:
C# code

class Player<TSRC>
        where TSRC : int, float    
{
        public static TSRC src
        { get; set; }
}


在类myC中,我需要使用src的值,所以在构造时传递进去,代码如下:
C# code

class myC
{
      public myC(TSRC  _src)//编译错误
     {
     }
}


出现编译错误:错误 未能找到类型或命名空间名称“TSRC”(是否缺少 using 指令或程序集引用?)
对泛型的用法不太熟悉,这里应该怎么写呢?还有别的更简洁的办法吗?谢谢指教!

------解决方案--------------------
或者也可以这样

class myC
{
public myC<T>(T _src) where T : class
{
}
}

可以在方法上定义泛型,where 后面约束该类型必须是一个引用类。
------解决方案--------------------
T和TSRC是一样的,都只是一个泛型的标识符而已。关键在于声明实例的时候就要指定类型
myC<int> myc;
myc = new myC<int>(src);