如何创建可以采用不同类型变量的函数?我想做这样的事情:
MyFunction("text");
MyFunction(2);
Run Code Online (Sandbox Code Playgroud)
我知道这是可能的,因为有许多编码人员使用这些类型的功能,但我不知道如何制作它.
在.NET你可以用相同的返回类型,但具有不同数量的参数,以及不同类型的使用相同的方法名.
所以,例如
private string Return(string entity)
{
return entity;
}
private string Return(bool entity)
{
return entity.ToString();
}
Run Code Online (Sandbox Code Playgroud)
他们两个都会返回一个string类型,但会接受bool或string.
另一种方法是制作一个generic method以object(不是基本类型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)