C# 2.0 语言改进

来源:互联网 发布:linux下eclipse快捷键 编辑:程序博客网 时间:2024/05/17 00:56

C# 2.0 语言改进

1. 支持分部类——Parital关键字。
可以将类、结构或接口的定义拆分到两个或多个源文件中。

2. 迭代器——yield关键字
yield返回IEnumberable接口对象,使其可以支持foreach迭代。
yeild return用于返回值,yeild break用于中断迭代。
迭代器的返回类型必须为IEnumerable、IEnumerator、IEnumerable<T>或IEnumerator<T>。

如:

public class YieldTest
{
    
public static IEnumerable Power(int number, int exponent)
    
{
        
int counter = 0;
        
int result = 1;
        
while (counter++ < exponent)
        
{
            result 
= result * number;
            
yield return result;
        }

    }

}

 

3. 可空类型——Nullable关键字
System.Nullable<T>,用于表示某个类型 + null值的表示。
简写型为:类型?。
如:
System.Nullable<int> i = null;
int? i = null;

Nullable包含方法:
HasValue:返回是否包含某个值。
Value:返回当前值。
GetValueOrDefault:返回当前值或者默认值(无值时)。

使用期“??”运算符指定在取值时的默认值。如:
int? i = null;
int y = x ?? -1; //如果x为空则返回-1

可空类型不允许嵌套。


4. 匿名方法
如:
this.Load += delegate(System.Object o, System.EventArgs e){MessageBox.Show("Form1_Load");}

如:

void StartThread()
{
 System.Threading.Thread t1 
= new System.Threading.Thread(delegate()
 
{
  System.Console.Write(
"Hello, ");
  System.Console.WriteLine(
"World!");
 }
);
 t1.Start();
}

 

5. 属性访问器
DotNet2.0中可以将get与set设写不同的访问性。
方法是属性(或索引器)本身具有修饰符,然后在get与set中的某一个上另设一个修饰符。另设的修饰符必须必属性本身修饰符更加严格。

6. 命名空间别名限定符——“::”
如:
using colAlias = System.Collections;
colAlias::Hashtable test = new colAlias::Hashtable();
另外,新增global关键字代表系统全局命名空间限定符,如:
global::System.Console.WriteLine....

 

原创粉丝点击