是否有可能在c#中创建一个公共方法来生成未知数量的私有实例变量

本文关键字:未知数 方法 变量 实例 有可能 创建 一个 是否 | 更新日期: 2023-09-27 18:02:35

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

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循环里面的那行代码没有意义。但我只是想说明一下我所说的。如果从myArray类中创建一个以3作为构造函数参数的对象,结果将是:

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循环动态命名变量的全部问题

是否有可能在c#中创建一个公共方法来生成未知数量的私有实例变量

基本上我想实现我自己的数组类

我劝你不要那样做。

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

。这些变量需要在编译时知道。

方法是使用数组或其他现有的集合类型。

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

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