社区
C#
帖子详情
听说c#4.0已经出来了?又有些什么新鲜玩意?大家来列列
易企加_天马行空
2008-11-02 07:42:13
如题
...全文
442
31
打赏
收藏
听说c#4.0已经出来了?又有些什么新鲜玩意?大家来列列
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ProjectDD
2008-11-05
打赏
举报
回复
加入很多功能据说,可以用C#写编译器,还可以自己加功能,不知是好是坏;
易企加_天马行空
2008-11-04
打赏
举报
回复
呵呵,大家似乎对新出来的东西很反感?为什么呢?新出来的东西确实有它的优点在那里。利用这些优点我们能加快开发速度。学习是一次性的,而获益却是你整个职业生涯的。而且,它并不是否认以前的,如果你不愿意学,按照你以前的编程方式和习惯,它又不会报错来阻扰你。
贫僧又回来了
2008-11-04
打赏
举报
回复
[Quote=引用 23 楼 tmxk2002 的回复:]
预览版已经出了啊。
[/Quote]
用什么难道一定都要最新的吗?
娃都会打酱油了
2008-11-04
打赏
举报
回复
不知道有啥新东西,但我确切的知道,我想问候微软他老妈
xiaojing7
2008-11-04
打赏
举报
回复
要实现点!盲目追逐的结果就想猴子掰玉米一样
tmx814
2008-11-04
打赏
举报
回复
等候答案..
顺便拿分..!
帮LZ顶上
aimeast
2008-11-04
打赏
举报
回复
唯一的好处就是大占了我的硬盘……
销魂的拖拉机
2008-11-03
打赏
举报
回复
思想跟不上进度
capeyf
2008-11-03
打赏
举报
回复
mark
wapit
2008-11-03
打赏
举报
回复
这个可怜的公司还在用着VB.NET 1.1..........
xiaoxiaojiewang0518
2008-11-03
打赏
举报
回复
微软,搞什么啊?!!! KAO!
lovehongyun
2008-11-03
打赏
举报
回复
up
soilwork
2008-11-03
打赏
举报
回复
http://code.msdn.microsoft.com/csharpfuture
易企加_天马行空
2008-11-03
打赏
举报
回复
预览版已经出了啊。
tkscascor
2008-11-03
打赏
举报
回复
[Quote=引用 20 楼 dlmeijianyu 的回复:]
1.1还没有开始用呢。
[/Quote]
..........
vrhero
2008-11-03
打赏
举报
回复
谣言...还早的很呢...
[Quote=引用 微软PDC(专业开发者大会:Professional Developer Convention)会议摘要::]
今天的会议,Anders 的 session 座无虚席,Anders 回顾了一下C#的历史,以及展望了未来,然后着重提了几个特性。
C#1.0, 大概98年11月份开始组件团队,马上就10年了。关键词:Managed Code,托管代码
C# 2.0, 提出了,Generics
C# 3.0, 主要是Linq
那么C# 4.0呢?
Anders 提到目前语言的几个方向,或者是以后的趋势
Declarative,所谓声明性语言,不让Linq是关注做什么,而不是怎么做
Dynamic,动态语言,这个比如当前流行的Ruby,Python,动态语言有动态语言的优势
CoCurreny,并发,或者说并行计算。目前进入多核时代
其中CoCurrent,CLR 4.0多了一个并行计算的类库,也有PLinQ,比如PLinq.For等
动态语言,以前有IronPython,这个版本会有完整的Runtime支持
比如 Dynamic Typed Object、 Optional and Named Parameter,这个特性就是可选参数以及命名的参数,VB.NET 很早就有了,过了10年,C#才有。Anders开玩笑说,这就叫Co—Evolution,可以说互相学习吧,为了VB.NET会跟C#特性尽可能的一致
然后就是COM Interop,所谓的NoPIA的问题,以前做Office应用的时候,一个小的C#应用,比如访问Excel的Com 互操作,可能就要Reference一个1M多的Assembly。现在C#可以动态的把用到的接口和类型,嵌入到Assembly中,这个成为Assembly Embedding,而对于多个版本的问题,比如一个接口,不同版本,只要GUID一样,则可当作一个type,彼此可以互相CAST,只是运行的时候会约束方法参数一致,所谓Type Safe。
然后开始演示Dynamic ,包含了Expression Tree,Dynamic Dispatching,Call Site Caching。
下面则是不同的Binder,比如对JS,Python,Ruby的Binder
一个Demo是关于Silverlight的,我们知道在Silverlight的C#代码中,如果你要访问JS的话,大多会用
HtmlWindow.Invoke(“Foo”,Parameters)
那么现在改为
Dynamic win=HtmlWindow.AsDyanmic
可以直接Call
win.Foo(parameters) 运行的时候,Runtime会解析和派遣到对应的方法。
这时候Foo是JAVA Script写的一个方法,后来觉得还不过瘾。能不能用C#来写呢?
改为
private Foo()
{
Dynamic map=Window.New.Map();
map.Load(para)…
}
鼓掌。。。
然后演示了一下Python的集成
比如Define add(x,y):
return x+y;
dynamic foo=pyahoruntime.load(“your.py”)
foo.add(x,y),直接调用
当然Python本来就是动态语言,你可以add(1,2),也可以add(Datetime.Now, timespan)
然后着重讲一下Dynamic,当然如果是Dynamic对于值类型的话,其实没有什么花样,在编译的时候就已经知道类型。对于动态的类型,runtime 在运行的时候派遣到对应的对象,方法。
Dynamic对象,有一个IDynamicObject接口,主要包含了一些GetMember,Invoke的方法。
也可以在C#中自己定义个一个动态对象。
比如
Foo:IDynamicObject
{
SetMember()
GetMember()
}
然后dynamic foo=new Foo();
foo.X=Value
foo.Y=Value
就会调用我们定义的SetMember方法。
然后我们可以写一个Generic的Helper方法。
比如
void DumpPrice(dynamic obj)
{
Console.Writeline(obj.Price + obj.Name)
}
不过是动态对象还是静态对象,只要有Price和Name两个member,都可以被DumpPrice方法调用
所谓的Dispatch可以到动态对象,也可以到静态对象
接下来演示了可选参数以及命名方法。
现在你可以这样定义方法了
SaveFIle(string filename, int fileSize=1204,encoding coding=null)
你调用的时候可以
直接Saveas(”foo.txt”)
也可以SaveAS(“foo.txt”,fileSize:2034)
还可以打乱顺序,SaveAS(“foo.txt”, encoding:xyz, fileSize:2222)
又是鼓掌…
然后提了一下Co Contra Variance的问题。
IEnuamable<Object> 不等于IEnuamble<string>
多了一个IEnuamble<out T> 或者 <in T>
编译的时候就可以更安全检查
最后展望了更未来的版本
Anders说他很看好Meta Programming,可是目前的Compiler是个黑盒子,NativeC++写的。开发人员不能控制Comipler任何的行为。
以后Compiler 会变成一个Service,可以在你编译或者runtime的时候加入你自己的逻辑。
比如可以有一个Eval方法
CSharpEvaluator eval=new CSharpEvaluator();
eval.reference.add(“system”)
eval.eval(“for(int i=0;i<10;i++) Console.WriteLine(i)”)
则会执行你输入的C#代码,有了这个你就可以快速做一个C#解释器,嘿嘿。不超过50行代码,Anders就Show了一个
[/Quote]
dlmeijianyu
2008-11-03
打赏
举报
回复
1.1还没有开始用呢。
bbbbbb888888
2008-11-03
打赏
举报
回复
晕死,,,,这样程序员会死的.
xyq1986
2008-11-03
打赏
举报
回复
还没空看呢
上次稍微瞄了一下,有新语法了
zhnzzy
2008-11-03
打赏
举报
回复
我也落伍了呵呵
加载更多回复(11)
手机实时提取SIM卡打电话的信令和声音-(五、最终解决方案-智能拨号器方案)
、【所有通话都要有录音,可回溯与核查】、【套餐分钟数太多、打不完,想共享给部门内其它同事】、【SIM卡电话用AI来播出,收集用户的语音反馈】等相当特殊化的需求。完成最初的项目和技术预研。
嵌入式工程师有发展前途吗?
现在来看,无论是软件开发还是嵌入式等,都是青春饭,但是软件(java,安卓,ios等应用层)的工资都稍高于嵌入式。 但是嵌入式的门槛却非常高。 是否应…显示全部 关注者 1,379 被浏览 1,046,366 已关注...
那四年,我们一起逝去的青春
日志发出来估计
已经
是几个月后的事了,这也是记录了大学里的点点滴滴。 前几天大一新生的军训闭幕式也落下了帷幕,上周五毕业设计的初稿
已经
发下来了,室友在实习的公司上班马上就要发工资了,考研的童鞋
已经
进入了...
编程语言的发展趋势by Anders Hejlsberg
其实DSL不是什么
新鲜
的
玩意
儿,我们平时一直在用类似的东西,比如,SQL,CSS,正则表达式,有的可能更加专注于一个方面,例如 Mathematica , LOGO 等等。这些语言的目标都是特定的领域,与之相对的则是 GPPL ...
《那些年啊,那些事——一个程序员的奋斗史》一
名字的来源在于其多读了几年书的老爹,总抱着有一天要出书出名乃至于名流千古的美好理想,但可惜现实总是给予他无情的而又现实的打击,于是就将理想寄望于自己的儿子,起了个“伏枥”的名,寓意为“老骥伏枥,...
C#
110,536
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章