求教 var 和=>符号怎么用

boziaa 2010-11-30 12:29:01
var 和=>是什么意思 怎么用呢,谢谢
...全文
170 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
boziaa 2010-11-30
  • 打赏
  • 举报
回复
谢谢大家的回答 现在对var理解了
但是=>还是不太懂 可以再说清楚点么
q107770540 你那个是完整的程序吗 l=>IsOK(l) 这里的l是什么

wuyazhe 你的意思是这段代码都可以省去吗
public delegate int AddDelegate(int a,int b);
public int add(int a,int b)
{
return a+b;
}
AddDelegate del = add;
var result = del(5,6);
claymore1114 2010-11-30
  • 打赏
  • 举报
回复
Lambda 是一个匿名函数,=> 运算符 读为goes to

下一站轻风 2010-11-30
  • 打赏
  • 举报
回复
Linq 语句
例如: var item=from p in query select p;
item = item.Where(p=>p.Id=ID)

item 隐式变量
兔子-顾问 2010-11-30
  • 打赏
  • 举报
回复
=>就是函数调用

更正为
=>就是函数实现
兔子-顾问 2010-11-30
  • 打赏
  • 举报
回复
=>是lambda表达式专用的。vs2008及以上版本的编译器支持的一种写法。
var是一种由右边调用推倒类型的伪类型,只是方便书写,并不是未定义类型的,也不是泛化编程的一部分,同样vs2008及以上版本的编译器支持的一种写法。

int x = 5;
var result = new List<int>(new int[]{x*5});
这里var并不是运行时决定的,编译时就替你替换为List<int>存入IL了。方便书写而已。

=>就是函数调用,例如

public delegate int AddDelegate(int a,int b);
public int add(int a,int b)
{
return a+b;
}
AddDelegate del = add;
var result = del(5,6);
可以简化为
AddDelegate del = (a,b)=>a+b;
省去上面那个函数的编写,实际上,并不是没有那个函数,只是一个简化写法,编译时系统还是会替你生成那个签名的函数。简化写法而已。语法糖。
q107770540 2010-11-30
  • 打赏
  • 举报
回复
给你个示例:
找出100-400内的质数 并从小到大排列

void Main()
{
List<int>list=new List<int>();
int min=100;
int max=400;

list= Enumerable.Range(min,max-min).Where(l=>IsOK(l)).OrderBy(l=>l).ToList();

Console.WriteLine(min+"-"+max+"的质数个数是:"+list.Count);
Console.WriteLine("---------------");
list.ForEach(l=>Console.WriteLine(l));
}

bool IsOK(int m)
{
int flag=0;
for(int i=2;i<m;i++)
{
if(m%i==0)
{
flag=1;
break;
}
}
return flag==0;
}

/*
100-400的质数个数是:53
---------------
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397

*/


saybookcat 2010-11-30
  • 打赏
  • 举报
回复

var 当不知道具体类型的时候可以使用这 隐式类型
=> 这个可以看下lambda表达式
flyerwing 2010-11-30
  • 打赏
  • 举报
回复
lamda表达式
引用某对象的意思,
boziaa 2010-11-30
  • 打赏
  • 举报
回复
中午睡觉做梦都梦到这个了 谢谢大家 我再消化下 先结贴
sez8852 2010-11-30
  • 打赏
  • 举报
回复
只说下我用到时的情况:
var 就是在我不知道该定义成什么类型时,定义成var

=》是lamda表达式
我一般是调delegate 时用到
例如
在window Window_Add中有
public delegate void DETB_AddDetail(List<string> aDetailList);
public DETB_AddDetail OnAddDetail;
调用此window时用这个接window的返回值
Window_Add mAddWindow = new Window_Add();
mAddWindow.OnAddDetail = new Window_AddMAr.DETB_AddDetail((mDetail) =>
{
//具体操作
});
mAddWindow.ShowDialog();
我2我骄傲 2010-11-30
  • 打赏
  • 举报
回复
var 是定义类型时用的
=》 是lamda表达式

都是.net 3.0的新东西
q107770540 2010-11-30
  • 打赏
  • 举报
回复
是的 是完整程序
claymore1114 2010-11-30
  • 打赏
  • 举报
回复
AddDelegate del = (l,s)=> l+s; //l,s相当于int a,int b 参数
wuyq11 2010-11-30
  • 打赏
  • 举报
回复
lamda表达式
“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。
所有 Lambda 表达式都使用 Lambda 运算符 =>,
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);
在C#3.0中增加了一个变量声明var
var仅仅是一个关键字,它并不是C#3.0中的一种新的类型,而是负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧