带有默认值参数的c#重载(扩展)函数

带有默认值参数的c#重载(扩展)函数,c#,operator-overloading,overloading,optional-parameters,C#,Operator Overloading,Overloading,Optional Parameters,我不明白为什么编译器没有看到我的第一个mult函数 using UnityEngine; using System.Collections; namespace Vector3ExtensionMethods { public static class MyExtensionsVector3 { public static Vector3 mult(this Vector3 me, float x, float y=1.0f, float z = 1.0f)

我不明白为什么编译器没有看到我的第一个mult函数

using UnityEngine;
using System.Collections;

namespace Vector3ExtensionMethods
{
    public static class MyExtensionsVector3
    {
        public static Vector3 mult(this Vector3 me, float x, float y=1.0f, float z = 1.0f)
        {
            return new Vector3(me.x * x, me.y * y, me.z * z);
        }

        public static Vector3 mult(this Vector3 me, Vector3 other)
        {
            return new Vector3(me.x * other.x, me.y * other.y, me.z * other.z);
        }
    }
}
但这不起作用:

new Vector3(1,1,1).mult(1,1); //compiler says "no overload method 'mult' takes 3 arguments"
为什么?


PS我想补充一点,在VS编辑器中我没有收到任何错误,但是如果我移动到Unity,这个特定的错误会弹出(Unity的控制台向我吐出一个错误)

也许(新向量3(1,1,1)).mult(1,1)?

是公共静态类中的
mult()
,类所在的命名空间是否可访问?粘贴箱。它位于名称空间的静态类中,我可以从尝试访问函数的位置访问它。不过我可以调用第二个方法。如果我刚才提供了所有三个参数,我也可以调用第一个函数。@thumbmunkeys。仍然错误。是否在使用该方法的clas中添加Vector3ExtensionMethods命名空间?此调用将显示什么:var vect=new Vector3(1,1,1);向量mult(1,1)?