主题:我想知道;通过属性访问接口和通过索引访问属性的不同之处
<<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;
}
}
部分注释掉,程序仍能得到相同大答案,我想知道通过索引和属性访问接口的不同,是不是这个例子有问题,有谁有好的教材给我推荐几本?谢谢
谢谢
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;
}
}
部分注释掉,程序仍能得到相同大答案,我想知道通过索引和属性访问接口的不同,是不是这个例子有问题,有谁有好的教材给我推荐几本?谢谢
谢谢