c#中的字段 属性 索引器
2014-04-13 20:59
162 查看
先扯点题外话,其实吧,学语言最重要的学会对比,比如c#和java比,和python比,都行,只有这样才能理解的更透彻,记得更死,
c#类中的变量分为3种,字段 属性 索引器 ,不像java,java中就是类级别的变量和局部级别的变量(例如 方法中的变量)
private int i = 1;//字段声明
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赋值逻辑
}
}//完整形式
ps:
这样我们便可以使用自定义中的索引器了
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:
这样我们便可以使用自定义中的索引器了
相关文章推荐
- 常量、字段、方法、属性和索引器(C#)
- C#基础之字段(Field)、属性(Properties)和索引器(Indexer)
- 常量、字段、方法、属性和索引器(C#)
- C# 类构造函数赋值里属性与字段赋值注意项
- C#中对类的字段、属性、方法的简单示例
- C#属性和字段
- C# Dynamic关键字之:调用属性、方法、字段的实现方法
- C# 字段、属性、变量
- 学点C#5 运算符重载 索引器 属性 委托
- C#索引器与属性的区别,以及索引器使用方法
- C#中属性和字段的区别
- C#.NET如何不序列化字段、属性
- c#属性和索引器
- C#OOP基础之类,字段,属性和方法。
- C#属性和索引器
- 为什么要用属性 C# .NET中的字段与属性_2
- 跟小静读CLR via C#(11)-无参属性、索引器
- C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性
- C#中综合使用字段,属性和方法的实例
- C# 字段与属性