回 帖 发 新 帖 刷新版面

主题:我想知道;通过属性访问接口和通过索引访问属性的不同之处

<<C#编程及应用程序开发教程>>清华大学出版社
using System;
public interface DataSerise
{
    int Next
    { get;set;}
    int this[int index]
   { get;}
}
class MyThree : DataSerise
{
    int x;
    public MyThree() { x = 0; }
    public int Next
    {
        get { x += 3; return x; }
        set { x = value; }
    }
   
}
class App
{
    public static void Main()
    {
        MyThree ob = new MyThree();
        for (int i = 0; i < 3; i++)//通过属性访问接口
            Console.WriteLine("Next value is "+ob.Next);
        Console.WriteLine("\nStarting at 100");
        ob.Next = 100;
        for (int i = 0; i < 3; i++)
            Console.WriteLine("Next value is "+ob.Next);
        Console.WriteLine("Resetting to 0");
        ob.Next = 0;
        for (int i = 0; i < 3; i++)//通过索引访问接口 
            Console.WriteLine("Next value is"+ob.Next);
    }
}
上述代码中,注释处的代码是一样的,如果把上面的索引的声明int this[int index]
   { get;}和实现索引
public int this[int index]
    {
        get
        {
            x = 0;
            for (int i = 0; i < index; i++)
                x += 3;
            return x;
        }
    }
部分注释掉,程序仍能得到相同大答案,我想知道通过索引和属性访问接口的不同,是不是这个例子有问题,有谁有好的教材给我推荐几本?谢谢
谢谢

回复列表 (共3个回复)

沙发

索引也可以看作是属性

板凳

上面的例子怎么解释啊,你能在上面的例子上给我修改一下,运用一下索引.谢谢

3 楼


上面的例子怎么解释啊,你能在上面的例子上给我修改一下,运用一下索引.谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册