C#5纯属YY的展望
2011-05-23 23:27 Ivony... 阅读(3819) 评论(18) 编辑 收藏 举报每次.NET出现新版本后,都会有大量对下个版本不靠谱的各种YY。尤其是C#,一些YY会从3开始,直到5。在这里我也不妨YY一下,谈谈我期盼了很久的一些语言特性,我尽可能会让这些YY靠谱一点,各位看官姑妄听之,姑妄看之。
1、namespace语句:
namespace Ivony;
令整个文件所有根定义,均在Ivony命名空间。
虽然很无聊,但是的确可以减少花括号的层次。
2、lambda语句块:
Expression<Action<int>> e = max => { for( int i = 0; i < max; i++ ) Console.WriteLine( i ); };
这个据说没赶上车
3、泛型约束支持更丰富类型:
public class EnumHelper<T> where T : Enum { //… }
这个在C#4仍然是不支持的。
4、自定义dynamic的类型转换:
public static dynamic operator implict ( MyType obj ) { //... }
C#小组是不是忘了这个重要的特性。
5、用简单的语法获取MemberInfo:
var member = memberof( obj.ToString );
获取一个MethodInfo对象。
6、自动推断委托类型:
var e = ( int i ) => i + 5; var d = delegate( int i ) { return i + 5; };
e是一个Expression<Func<int, int>>对象,d是一个Func<int,int>对象。
这个可能C#团队永远不会实现。
7、自定义类型初始化表达式行为:
我简单的说说,不给出代码了。
通过特性,设置类型的一个属性是否应当出现在类型初始化表达式中,也就是说new MyType(){ A = 1 };,通过特性可以使得A不能在出现在花括号中。
或者,使得{ A = 1 }编译为obj.Add( "A", 1 )。
或者,使得非内置列表类型可以写出:new MyType(){ "a", "b" };
8、对匿名类型属性应用特性:
var obj = new { [DisplayName( "姓名" )] Name = "abc" }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库