我有一个包含两个方法像这样一类:C#编译器抛出无效参数错误。为什么?
public String getFoo(Int32 a)
{
return getBar(a, "b", null);
}
public String getBar(Int32 a, String b, Int32 c)
{
//do something
return "";
}
然而,当我编译我的课,我得到两个错误:
- 为getBar(整型,字符串,整数的最佳重载的方法匹配)有一些无效参数
- 参数 '3':无法从 '
<null>
' 转换为 'INT'
我想我unders为什么我得到这个错误:编译器在编译时不知道 什么是对象的实际类型。 有人可以确认我对错误原因是否正确或指出真实原因?
更重要的是,我可以这样设计我的代码吗?如果是这样,我需要做些什么来修复错误?我这样设计我的类的理由是因为我不想在getFar中复制getBar中的代码。这两种方法基本上是一样的,除了一个取得第三个参数。
谢谢。
谢谢大家。这正是我需要知道的。我有一个关于Int32的错误假设,因为我认为它是一个从System.Object继承的对象。乔纳森的回答真的解决了这个问题。 堆栈溢出岩石! – Notorious2tall 2008-11-06 21:36:15