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]);
你若是说两者有什么区别,我也不是很清楚,大概是更简单点???可能