解决方案 »
- pParm[0] = new OracleParameter("BUREAUID", OracleDbType.Varchar2)这句话错在哪
- 有哪些方法可以将framework4.0做的系统直接转化成3.5?
- 文本粗体问题
- WPF如何实现像概念版QQ那样的窗体翻转效果
- C#中form中控件随form能够即使缩放
- 较为特殊的一个绘图要求,请高手们指教一下
- 我从没开发过C/S结构的系统,现在想接触一下,这里有个关于用户登陆的疑问,多谢
- [C#]在project_A中打开project_B中的窗口,并从project_B中返回数据到project_A的窗口中应该怎样实现?
- 高分求权限管理代码(C#,winform)。。
- 太慢了,我又回到vb6 了
- VS 属性编辑器问题
- VS2010 WPF开发的SQL Server客户端工具,可以完美操作远程数据库(开源)
static void Main(string[] args)
{
List<string> strs = new List<string>();
strs.Add("1");
strs.Add("2");
strs.Add("3");
strs.Add("4"); List<object> objs = strs.ConvertAll(new Converter<string, object>(StrToObj)); foreach (object item in objs)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
public static object StrToObj(string str)
{
return str;
}
不过IList<T>继承了IEnumerable<T>。IEnumerable<T>的参数是协变参数,如果只是为了输出其中的元素,把IList<string>转化为IEnumerable<object>是可以的。2.逆变和协变只能用于接口和委托,List<T>是类,不支持逆变和协变这个从逻辑上也很好理解
如果允许IList<string>转化成IList<object>,那不是可以往里面添加任何东西了,然后写出这样的代码:
objs.Add(new Control());
int iLength=strs[2].Length();
那样搞个范型出来也没意义了,任何XXX<T>都能转化为XXX<object>的话还不如直接用object
strs.Add("a");
strs.Add("b");
List<object> objs = strs.Select(x => (object)x).ToList();