在C#中,泛型是一个经常被使用到的类型,它可以用来处理大量相似逻辑不同类型变量的方法
比如说将数据装为逗号隔开的数据:
//list<int>存入
public string PackagingIntList(List<int> intList)
{
string str = "";
for (var idx = 0; idx < intList.Count; idx++)
{
if (str != "") str += "," + intList[idx];
else str = "" + intList[idx];
}
return str;
}
//list<int>解析
public List<int> UnpackList(string str)
{
List<int> m_list = new List<int>();
string[] sArray = str.Split(',');
foreach (string i in sArray)
{
m_list.Add(int.Parse(i));
}
return m_list;
}
//list<int>存入
public string PackagingStrList(List<string> intList)
{
string str = "";
for (var idx = 0; idx < intList.Count; idx++)
{
if (str != "") str += "," + intList[idx];
else str = "" + intList[idx];
}
return str;
}
//list<int>解析
public List<string> UnpackStrList(string str)
{
Debug.Log(str);
List<string> m_list = new List<string>();
string[] sArray = str.Split(',');
foreach (string i in sArray)
{
m_list.Add(i);
}
return m_list;
}
可以看出这些代码的逻辑基本雷同,如果要加long或者其它类型,会显得代码无比繁琐。
而使用泛型的话,我只需要将其合并为两个方法既可:
/// <summary>
/// 存入
/// </summary>
public string PackagingTList<T>(List<T> _list)
{
var _str = "";
for (var idx = 0; idx < _list.Count; idx++)
{
if (_str != "") _str += "," + _list[idx];
else _str = "" + _list[idx];
}
return _str;
}
/// <summary>
/// 解析
/// </summary>
public List<T> UnpackList<T>(string _str)
{
List<T> m_list = new List<T>();
string[] _sArray = _str.Split(',');
foreach (string _i in _sArray)
{
T _ret = (T)Convert.ChangeType(_i, typeof(T));
m_list.Add(_ret);
}
return m_list;
}
当然这只是泛型的一个小小的用法,T的引用类为:
using System.Collections.Generic;
版权声明:本文为Tel17610887670原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。