自定义类库作为数组C#

时间:2011-05-10 21:38:44

标签: c# arrays class-library

我正在使用自己的方法在C#中使用类库,我想从这个库中创建一个数组,但是当我在主程序中调用它时,我无法看到它的方法。

public class ClassLibrary1
{
    public int num;                       

    public ClassLibrary1 ()
    {

    }

    public void Readdata()
    { 
        Console.Write("write a number ");
        num = int.Parse(Console.ReadLine());
    }
}

program.cs:

ClassLibrary1[] arraynumbers = new ClassLibrary1[5];

arraynumbers.Readdata();

我无法使用Readdata()

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:2)

如果要调用类中的方法,则必须至少创建一个实例。实际上,您所做的就是创建一个空引用数组,然后尝试在数组上调用您的方法。这是你可以做到的一种方式。

ClassLibrary1[] arraynumbers = new ClassLibrary1[5];
for(int i = 0; i < 5; i++) 
{
    arraynumbers[i] = new ClassLibrary1();
}
arraynumbers[0].Readdata();

答案 1 :(得分:1)

您不能以Readdata的方式使用ClassLibrary1[],因为ClassLibrary1是一个ARRAY对象,而不是arraynumbers[0].Readdata(); 对象,其中定义了您的方法。

你必须做这样的事情:

{{1}}

答案 2 :(得分:0)

Readdata()ClassLibrary1实例的方法,而不是包含ClassLibrary1个实例的数组。

答案 3 :(得分:0)

可能不会在该类的集合上调用在类上定义的方法。如果要在集合上使用方法,请考虑使用扩展方法:

public static class ClassLibrary1Extensions
{
    public static Readdata(this ClassLibrary[] value)
    {
        ...
    }
}

第一个参数中的“this”关键字允许您“假装”此方法是在“ClassLibrary1 []”或数组类型上。即扩展那种类型。