目前了解到的C#和Java的不同点————属性和索引器

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]);

你若是说两者有什么区别,我也不是很清楚,大概是更简单点???可能
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值