C#对java的很多语法都进行了修补,但变化其实不算很大
属性 属性应该算是对java一直以来get和set封装类的一种简化了。 代码如下:
class B { public int name { get; set; } public int age{ get; set; } }如此如此就封装完两个变量name和age了,感觉也没怎么简单,反而觉得idea的快捷封装更简单点,说一句prop+tab可以快速封装
class Program { static void Main(string[] args) { Console.WriteLine(new B().name); Console.WriteLine(new B().age); new B().age = 100; } }这是引用的。
索引器 索引器就是很奇怪的东西了,索引器使得对象可按照与数组相似的方法进行索引。 索引器的定义:
访问修饰符 返回类型 this[参数类型 参数…] { get{语句集合} set{语句集合} }
代码示例
class Stud { private Dictionary<string, int> scorceDictionary = new Dictionary<string, int>(); //int? public int? this[string index] { get { if (this.scorceDictionary.ContainsKey(index)) { return this.scorceDictionary[index]; } else { return null; } } set { if (this.scorceDictionary.ContainsKey(index)) { this.scorceDictionary[index] = value.Value; } else { this.scorceDictionary.Add(index, value.Value); } } } } }来个简单点的
class C { private Dictionary<int, int> list = new Dictionary<int, int>(); public int this[int abc] { get { return list[abc]; } set { list[abc]=value; } } }这里要看到字典Dictionary类型这个类型类似于java中的map类型,但是可以通过list[1]等来取到值; 而value的值则是对于输入的值的取到; 引用
C c= new C(); int aaa= c[3] = 1000; Console.WriteLine("索引器设置"+aaa); Console.WriteLine("构造器" +c[3]); 你若是说两者有什么区别,我也不是很清楚,大概是更简单点???可能