C# 泛型问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 泛型问题相关的知识,希望对你有一定的参考价值。

public static T GetSum<T, K>(List<K> listArray)
where T : struct

T sum;
T temp;

for (int i = 0; i < listArray.Count; i++)


bool flag = T.TryParse(listArray[i].ToString(), out temp);
if (flag)

sum = sum + temp;



return sum;

1.计算listArray中的和放到sum中。

2.T、K可能类型是int double float等数值,K还可以示string类型。

3.程序报错,报错部分为上面红色。

        static void Main(string[] args)
        
            List<float> lst = new List<float>();
            lst.Add(1.1f);
            lst.Add(2.2f);
            lst.Add(3.3f);

            Console.WriteLine(GetSum<int, float>(lst));
            //6
            Console.WriteLine(GetSum<double, float>(lst));
            //6.6

            Console.ReadLine();

        

        public static T GetSum<T, K>(List<K> listArray) where T : struct
        
            if (typeof(T) == typeof(int))
            
                int sum = 0;
                for (int i = 0; i < listArray.Count; i++)
                
                    string s = listArray[i].ToString();
                    float temp;
                    if (float.TryParse(s, out temp))
                    
                        sum += (int)(Convert.ToSingle(s));
                    
                
                return (T)Convert.ChangeType(sum, typeof(T));
            
            else if (typeof(T) == typeof(double))
            
                float sum = 0;
                for (int i = 0; i < listArray.Count; i++)
                
                    string s = listArray[i].ToString();
                    float temp;
                    if (float.TryParse(s, out temp))
                    
                        sum += temp;
                    
                
                return (T)Convert.ChangeType(sum, typeof(T));
            
            //其他K类型
            else
                return (T)(new object());

        
    

参考技术A 1.计算listArray中的和放到sum中。T:结构
类型参数必须是值类型。 可以指定除 Nullable 以外的任何值类型。

以上是关于C# 泛型问题的主要内容,如果未能解决你的问题,请参考以下文章

《C#零基础入门之百识百例》(八十一)泛型概念介绍 -- 泛型类/结构/接口/委托

C#进阶C# 泛型

C#泛型类,泛型接口,泛型方法,泛型委托怎么用

C# 泛型委托的问题

理解C#泛型原理

理解C#泛型运作原理