您的位置:首页 > 编程语言 > C#

c#中的字段 属性 索引器

2014-04-13 20:59 162 查看
先扯点题外话,其实吧,学语言最重要的学会对比,比如c#和java比,和python比,都行,只有这样才能理解的更透彻,记得更死,

c#类中的变量分为3种,字段 属性 索引器 ,不像java,java中就是类级别的变量和局部级别的变量(例如 方法中的变量)

1.字段

c#中的变量的声明方式和java中的类级别的变量有点类似,都是在类的内部的第一层,直接声明,不同的是,c#中的字段,一般声明成private的,供类内部使用,要是实现java中的get,set的功能,c#中的属性更方便一些,

private int i = 1;//字段声明

2.属性

简单点说,c#中的属性,就是java中的类级别的变量的一种优化形式,毕竟c#比java玩了10多年,在 使用上比java方便太多,事毋庸置疑的啦,

public int CustomCount{get;set;}//简写形式get,可读,set,可写,和java中,先声明一个private的CustomCount类级别的变量,然后再声明响应的get,set方法是一样的,而且c#中属性的使用,要比java中的类级别变量使用方便的多,直接给变量赋值,取值,不想java中,要通过,响应的get,set,方法,才行

public string Name {

get{

//逻辑处理

return Name;

}

set{

//为Name赋值逻辑

}

}//完整形式

3.索引器

c#的索引器可以说是让我们操作集合大大的方便,可以像操作数组一样,操作List等,java中是不能的,索引器大体说来,就是在定义的类中,必须使用this关键字来实现,而且索引器还可以重载

public int a, b, c;
public int this[string str]
{
get
{
if (str== "a"){ return a;}
else if (str == "b") {return b;}
else if (str == "c") {return c;}

else{ throw new Exception("...");}
} set { if (str == "a") {a = value;} else if (字 == "b") {b = value;} else if (字 == "c"){ c = value;} else{ throw new Exception("...");} } }
ps:

这样我们便可以使用自定义中的索引器了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: