DotNET 4.0 新增内容总结(一)
来源:互联网 发布:安卓手表软件 编辑:程序博客网 时间:2024/05/16 01:55
1. 新的CLR4
2. 新加的类
3. 根据契约设计(Design By Contract)
4. Type Equivalence
1. 新的CLR4
2. 新加的类
Console.WriteLine(b.ToString("N"));
Double d = Math.Pow(2, 64);
Console.WriteLine(d.ToString("N"));
参考:http://blogs.microsoft.co.il/blogs/pavely/archive/2009/05/26/biginteger-in-net-4-0.aspx
b. Complex, 参看:
http://msdn.microsoft.com/en-us/library/bb738466(VS.100).aspx
c. Tuple, 用来存放不同类型对象的集合,并且,提取对象的时候不需要类型转换,和数组做一个对比.
用数组存储对象:
object[] o = new object[2]{"Hello",4};
Console.WriteLine((string)o[0]+" "+(int)o[1]);
用Tuple存储对象:
Tuple<string, int> t = new Tuple<string, int>("Hello", 4);
Console.WriteLine(t.Item1+" "+t.Item2);
Tuple 还有其他有趣的功能,请参看
http://msdn.microsoft.com/en-us/magazine/dd942829.aspx
d. SortedSet, 使用平衡二叉数来保持节点有序,SortedSet<T>实现(implement)ISet<T>接口.
加入SortedSet<T>里的类型要实现 IComparable 接口. 更多请参考:
http://msdn.microsoft.com/en-us/library/dd412070(VS.100).aspx
e. MemoryMappedFiles:System.IO.MemoryMappedFiles.
把硬盘的文件映射到内存里,根据Salvador Patuel 的说法,这个类型能带来两个好处
- 避免了频繁了IO操作,方便了大文件的处理,尤其在现在这个内存越来越大的时代.
- 方便多核处理器共享数据.
关于第二点,为多核处理器带来的好处,看下图:
具体使用请参看:Salvador Patuel 的一篇博文:
http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx
f. Unified Cancellation Model, 请参看 Parallel Programming with.NET 的一篇文章:
http://blogs.msdn.com/pfxteam/archive/2009/05/22/9635790.aspx
3. 根据契约设计(Design By Contract)
using System.Diagnostics.Contracts;
using System.Diagnostics;
class Program {
static void Main(string[] args) {
SimpleCalculate sc = new SimpleCalculate(4,8);
Console.WriteLine(sc.Divide());
}
}
class SimpleCalculate {
private int num1;
private int num2;
public SimpleCalculate(int numberone, int numbertwo) {
num1 = numberone;
num2 = numbertwo;
}
[ContractInvariantMethod]
protected void ObjectInvariant() {
Contract.Invariant(this.num2>0);
}
public int Divide() {
Contract.Ensures(Contract.Result<int>() > 0);
if (num2 > 0)
return num1 / num2;
return num1;
}
}
上文的作者在文章最后提出了一个很有意思的问题,程序中Divide() 方法都还没运行完,Contract 居然就告诉你结果有问题了,相当的有意思。
更多关于Code Contract 的信息,请参考:
http://blogs.msdn.com/somasegar/archive/2009/02/23/devlabs-code-contracts-for-net.aspx
4. Type Equivalence
- DotNET 4.0 新增内容总结(一)
- HTML5+CSS3新增内容总结!
- ES6详解一:复习ES5 新增内容
- DotNet Assembly 内容
- dotnet一技巧
- dotnet两年总结
- DotNet 操纵Excel总结
- dotnet基础总结1
- linux常用内容总结(一)
- 指针内容总结(一)
- C# 3.0 新增内容
- CSS3新增内容
- HTML5新增内容
- DotNet剖析系列(一)
- DotNet 操纵Excel总结之一
- 总结dotNET的开发词汇
- DotNet常用排序算法总结
- PHP总结(一)基本语法内容
- 《Java面向对象编程》学习笔记1——面向对象开发方法
- JNDI,JTA,JMS
- RAID
- Count the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)
- 自省
- DotNET 4.0 新增内容总结(一)
- 动态代理
- pentoo
- Google优化疑问【二】
- 七 对话框
- 用gcc编译成执行程序
- Firefox中使用Firebug插件调试CSS
- 反恐精英之碧瑶仙子版
- MySQL索引分析和优化