-1

基本上我正在尝试实现我自己的数组类,我想知道是否创建一个生成未知数量的私有实例变量的公共方法是要走的路?就像是:

public class myArray {
    public myArray(int length) {
        for(int i = 0; i < length; i++) {
            int component+i;
        }
    }
    int component(int indexOfComponent) {
        return component+indexOfComponent; 
    }
}

我知道 for 循环中的代码行没有意义。但我只是想我会说明我在说什么。使用 3 作为构造函数参数从 myArray 类创建对象会产生什么结果:

public class myArray {
    private int component1;
    private int component2;
    private int component3;

    public myArray(int length) {
        for(int i = 0; i < length; i++) {
            int component+i;
        }
    int component(int indexOfComponent) {
            return component+indexOfComponent; 
        }
    }
}

而且我知道这些变量只会存在于 for 循环中,但这是我可以举例说明我正在尝试做的事情的最佳方式。如果我想实现自己的数组类,这甚至是要走的路吗?还; 还有一件事我认为可能值得一个单独的问题,但这是使用 for 循环动态命名变量的整个问题。

4

1 回答 1

1

基本上我正在尝试实现我自己的数组类

我劝你不要那样做。

我想知道创建一个生成未知数量的私有实例变量的公共方法是否是要走的路

不,变量需要在编译时知道。

“要走的路”是使用数组或其他现有的集合类型。

从根本上说,您不能直接在 C# 中实现数组。数组和字符串是实例大小因对象而异的唯一对象。对于其他所有内容,每个对象的布局都是相同的。

(正如评论中提到的,您可以使用Reflection.Emit或类似的东西为每个实例动态创建一个新类型,但您真的不想这样做。)

于 2013-03-07T05:10:08.460 回答