如何在构造函数中查找参数数量

时间:2008-11-03 15:02:06

标签: c# visual-studio-2008 constructor

我正试图找到一种方法来确定构造函数有多少参数。

现在我已经构建了一个没有参数的构造函数和一个带有4个参数的构造函数。

在C#中,有没有办法找出使用过的或给定的构造函数有多少参数?

事实是,我正在使用第三个构造函数来读取日志文件。这些日志文件被读作string []元素,并且应该有与参数一样多的日志文件。如果没有,我的日志文件已损坏。

但是我使用了很多子类,每个构造函数都有更多参数用于特定的日志类型。

所以我想知道:有没有一种方法来检查构造函数上的参数数量?

是的,这是一项学校作业。我不知道要查找哪些术语,因此VS2008对象浏览器目前没什么用处。

5 个答案:

答案 0 :(得分:3)

您应该查看System.Reflection命名空间。更具体地说,您可以使用以下命令获取类的构造函数列表:

 System.Type.GetType("MYClassName").GetConstructors()

答案 1 :(得分:2)

听起来好像你需要重新考虑你的代码。根据您的描述,必须动态确定构造函数中的参数数量听起来有点毛茸茸。您可以考虑工厂设计模式,因为创建的对象类型是在运行时确定的。如果我误解了你的问题,那么使用其他答案所指出的反思将为你做到这一点。

答案 2 :(得分:0)

我不确定您需要此信息的确切上下文,但如果您在运行时需要它,请尝试使用System.Reflection命名空间

否则Intellisense下拉列表应该显示所有可用的构造函数......

答案 3 :(得分:0)

参数的数量是不变的。我已经定义了它们并且它们没有改变。

正在发生的事情是我正在模拟某种出版物树,而我正在进行分割(a.k.a。子类)

因此,我的子类的所有构造函数都有参数或它们继承的类。

因此,每种出版物的长度都不同。

我有第三个构造函数,以防万一我需要通过读取日志文件来显示我的发布数据。

但我必须考虑到日志文件可能已损坏。其中包括日志文件中所有参数都没有数据的可能性。

这就是我必须知道如何在构造函数中找到参数数量的原因:我必须检查我的日志中有多少数据与我拥有的参数数量相比。

答案 4 :(得分:0)

你不能创建一个构造函数来引用日志文件(或当前的原始日志文件条目),读取它,并在出现任何问题时抛出错误吗?

我试图理解为什么你需要查看构造函数的元素数量。从我到目前为止看来,它似乎是一种弱设计,它相信日志文件中的元素数量恰好可以识别要创建的发布类型。

您当前问题的简短回答是前面的答案中陈述的内容:反思您正在尝试创建的类的构造函数,并检查其参数。