C# 函数中不同类型的输入
我正在创建我的第一个库,我想创建不同类型的输入(例如:Graphics.DrawLine();可以由四个浮点数或两点决定,等等)。如何创建类似的东西?您只需创建具有不同参数的多个方法 例如:C# 函数中不同类型的输入,c#,libraries,C#,Libraries,我正在创建我的第一个库,我想创建不同类型的输入(例如:Graphics.DrawLine();可以由四个浮点数或两点决定,等等)。如何创建类似的东西?您只需创建具有不同参数的多个方法 例如: public class MyGraphics { public bool Draw(Vector2 position, bool big = false) { } public void Draw(Line2 line) { } public v
public class MyGraphics
{
public bool Draw(Vector2 position, bool big = false)
{
}
public void Draw(Line2 line)
{
}
public void Draw(Triangle2 triangle)
{
}
public void Draw(Polygon2 polygon)
{
}
public void Draw(Line2[] edges)
{
}
}
以后用作
{
MyGraphics g = ...
Line2 line = ...
Triangle2 trig = ...
g.Draw(line); // calls `.Draw(Line2)`
g.Draw(trig); // calls `.Draw(Triangle2)`
}
它被称为重载,您基本上使用不同的参数类型和参数数量多次声明相同的方法。一个典型的实现可能是所有重载都调用具有实际实现的同一个重载,或者您有一个它们都调用的包含该重载的私有方法。示例:
public void Initialize(点p,大小s){…}public void Initialize(int x,int y,int w,int h){…}
。请注意,重载必须根据参数类型或参数数量而有所不同。仅仅重命名参数是不够的,它们的实际类型或数量必须有所不同。你可以在这里了解更多-。@KonradRudolph嗯,公平地说,这两个都是:)重载扩展方法…@KonradRudolph好的,把它们变成了普通的methods@ColinM-我说的it
是指超载。