C# notes (1)

一、 C#静态字段与C#实例字段

  C#的字段有静态字段和实例字段两种,字段进行的是引用传递,可以是任何类型。静态字段是属于类的,实例字段是属于对象的。如下:

private   static   int  first  =   0 // 声名一个静态字段  
private   int  second  =   0 // 声名一个实例字段  
static   void  Main( string [] args)  
{  
    Program instance 
=   new  Program();  // 建立对像引用,并实例化。  
    Console.WriteLine(instance.second);  // 用对像来访问字段j  
    Console.WriteLine(Program.first);  // 静态字段需要用类名来访问  
} 

 

  readonly关健字是用来声名一个只读字段的,也就是说字段是不充许被改写的,不过有个例外,在构造函数中,是可以对只读字段进行改写。

 

二、var匿名类型和隐式类型变量

  使用 隐式类型变量Implicitly typed local variables 时应遵守下列约束:

  1、声明时必须包含初始化器。

  2、初始化必须是一个表达式。初始化表达式不能包含它自身,但是可以是包含一个对象或集合初始化器的一个new表达式(即匿名类型)。

  3、初始化器表达式的编译期类型不可以是空(null)类型。比如: var aa = null; 这行代码就会报错误: Cannot assign '' to an implicitly typed local

  4、如果局部变量声明包含了多个声明符,这些声明符必须具备同样的编译期类型。比如:

var m  =   4 ;
var n 
=   " string "
var res 
=  m  +  n;

Console.WriteLine(res); 
// 输出为:4string
Console.WriteLine(res.GetType());  //  输出为:System.String

  5、初始化中不能提起它自身。隐式类型变量的使用范围,不是到处能用。仅仅可以用于下面四种情况

    局部变量声明;for 语句中变量声明;using 语句初始化变量时;foreach 中iterator类型声明

  比如下面代码就会报错:

class  Program 

    
private  var tmp  =   " string " ;

// The contextual keyword 'var' may only appear within a local variable declaration

  6、下面的代码就是隐式类型变量:

var i  =   5 ;
var str 
=   " Csharp " ;
var numbers 
=   new   int []{ 1 , 2 , 3 };
var orders 
=   new  System.Collections.Hashtable(); 
var orders1 
=   new  Dictionary(); 

 

  匿名类型(Anonymous Types)

  匿名类型,是从对象初始化器自动推导和创建的元组(tuple)类型。如:

var person  =   new  {Name  =   " lei " , Age  =   23  }; 
var intArr 
=   new [] { 3 , 1 , 4 , 1 , 5 } ;

 

  var intArr = new[] {3,1,4,1,5} ;  是匿名类型,当然也是隐式类型变量

  var intArr = new int[] {3,1,4,1,5} ;  是隐式类型变量

  

  匿名类型 和 隐式类型变量 的区别

  隐式类型变量 指我们可以通过等号右边的表达式,推断出等号左边该是那种类型。匿名类型则是指,根据这个类型的初始化函数,我们可以推导出和创建出这个类型的实例。这两个特性很多时候是一起作用的。比如: new {Name = "lei", Age = 23 }这个表达式的类型是匿名的,因此person就会变成那个匿名类型。其中的 Name = "lei" 又可以看作是隐式类型变量。

 

Go to my home page for more posts

转载于:https://www.cnblogs.com/lantionzy/archive/2010/01/07/1641497.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值