读书人

新手C# 问几个语法的有关问题

发布时间: 2013-07-08 14:13:00 作者: rapoo

新手C# 问几个语法的问题
1:


ServiceLocator.Register<ITideRMLiveRepository>(() => new TideRMLiveRepository(connection_session));

public static void Register<T>(Func<T> instanceCreator) where T : class
{
RegisterInternal(CreateKey<T>(), instanceCreator);
}

Register的参数不是Func么 这个不是委托一个函数么
传参的时候 () => new TideRMLiveRepository(connection_session) 这是什么意思?
怎么给了一个实例?


ServiceLocator.Register<RMMappingService>(delegate
{
return new RMMappingService();
});

这里 加了delegate关键字就可以传入一个函数了?

2:
public static T Resolve<T>() where T : class

我知道那个where 是修饰T这个泛型的 但是:不是继承或者接口么。。。这放个class是什么意思?

3:lamba问题
假设
List<int> xx = new List<int>();
xx.ForEach(x=>x=x+1);
是不是只能做基于元素的事情
比如
我想
foreach(var item in xx)
{
Console.Write(item);
}
这样就没法翻译成lamba表达式?

[解决办法]
1、楼主看看这篇文章《温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件 》,应该就明白了
http://www.cnblogs.com/yjmyzz/archive/2009/11/23/1608818.html
2、“T : class”表示T是class这种类型
3、xx.ForEach(item=>Console.Write(item));其实像这个问题,楼主要想知道行不行,打开VS输几行代码试验一下就知道了。

读书人网 >C#

热点推荐