创建一个可以采用不同类型变量的函数

-2 c# methods

如何创建可以采用不同类型变量的函数?我想做这样的事情:

MyFunction("text");
MyFunction(2);
Run Code Online (Sandbox Code Playgroud)

我知道这是可能的,因为有许多编码人员使用这些类型的功能,但我不知道如何制作它.

Zip*_*ppy 7

.NET你可以用相同的返回类型,但具有不同数量的参数,以及不同类型的使用相同的方法名.

所以,例如

  private string Return(string entity)
    {
        return entity;
    }

    private string Return(bool entity)
    {
        return entity.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

他们两个都会返回一个string类型,但会接受boolstring.

另一种方法是制作一个generic methodobject(不是基本类型string int bool)type为参数的方法.就像是:

  private string ReturnType<T>(T entity) where T : class
   {
    return entity.ToString();
   }
Run Code Online (Sandbox Code Playgroud)

请注意,只有T class拥有此ToString()方法,上述内容才能正常运行overriden.

正如@StanR指出的那样,要对基本类型使用泛型方法,请使用没有where子句的方法,如:

  private string ReturnType<T>(T entity)
    {
        return entity.ToString();
    }
Run Code Online (Sandbox Code Playgroud)