相关疑难解决方法(0)

C# - 有意义的应用程序的索引器

我理解索引器使我们能够访问类中的集合,就像类本身是一个数组一样.

假设我们正在开发一个项目,我们在哪里适合这些索引器的真实实际用法(例如可能有帮助)?

c# language-features

7
推荐指数
2
解决办法
500
查看次数

关于索引器和/或泛型的问题

如何知道对象是否实现索引器?我需要共享DataRow和IDataReader的逻辑,但它们不共享任何接口.

我也尝试使用泛型,但不知道我应该对where子句施加什么限制.

public class Indexer {
    // myObject should be a DataRow or a IDataReader
    private object myObject;
    public object MyObject {
        get { return myObject; }
        set { myObject = value; }
    }
    // won't compile, myObject has no indexer
    public object this[int index] {
        get { return myObject[index]; }
        set { myObject[index] = value; }
    }
    public Indexer(object myObject) {
        this.myObject = myObject;
    }
}

public class Caller {
    void Call() {
        DataRow row = null;
        IDataReader reader …
Run Code Online (Sandbox Code Playgroud)

c# generics indexer

3
推荐指数
1
解决办法
1247
查看次数

C#Indexers:设置变量的值

public string name;
public int rollNo;

public string this[int i] 
{
    get 
    {
        switch(i)
        {
            case 0:
                return name;

            case 1:
                return rollNo.ToString();

            default:
                return "";
        }
    }
    set
    {
        switch (i)
        {
            case 0:
                name = value;
                break;
            case 1:
                rollNo = value;
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面是我正在尝试执行的代码,但问题是rollNo = value显示此问题"无法从字符串转换为int".我想问的是,传递给索引器的值是否需要与索引器的返回类型相同?如果没有,请指导我到底做错了什么.-谢谢

c#

1
推荐指数
2
解决办法
180
查看次数

有人可以解释这个C#语法吗?

这里到底发生了什么:

public decimal[] Coefficients;
public decimal this[int i]
{
    get { return Coefficients[i]; }
    set { Coefficients[i] = value; }
}
Run Code Online (Sandbox Code Playgroud)

这是什么this服务?它是某种延伸decimal吗?

c#

-2
推荐指数
1
解决办法
132
查看次数

标签 统计

c# ×4

generics ×1

indexer ×1

language-features ×1