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.程序报错,报错部分为上面红色。
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# 泛型问题的主要内容,如果未能解决你的问题,请参考以下文章