1

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

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

在 C# 中,是否有一种方法可以找出使用的或给定的构造函数有多少个参数?

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

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

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

是的,这是一项学校作业。我真的不知道要寻找什么术语,所以 VS2008 对象浏览器目前用处不大。

4

5 回答 5

4

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

 System.Type.GetType("MYClassName").GetConstructors()
于 2008-11-03T15:06:35.150 回答
2

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

于 2008-11-03T15:11:21.600 回答
0

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

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

于 2008-11-03T15:05:08.010 回答
0

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

正在发生的事情是我正在模拟一种出版物树,并且我正在其中进行划分(又名子类​​)

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

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

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

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

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

于 2008-11-03T15:26:24.800 回答
0

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

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

对您当前问题的简短回答是之前的回答中所述:反思您尝试创建的类的构造函数,并检查其参数。

于 2008-11-03T15:33:02.337 回答