C# 如何将这些合并到一个函数中
试图代码干净;目标是创建完整的.Net对象。C# 如何将这些合并到一个函数中,c#,visual-studio,C#,Visual Studio,试图代码干净;目标是创建完整的.Net对象。无论对象类型如何,我都希望有一个调用,因为我认为这会很快失控 区域建筑群 …您可以执行以下操作。从代码看,参数o似乎是一个控件。比如说 public void buildOval(int oWDelta, int oHDelta, Control o) { using (System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath())
无论对象类型如何,我都希望有一个调用,因为我认为这会很快失控 区域建筑群
…您可以执行以下操作。从代码看,参数
o
似乎是一个控件。比如说
public void buildOval(int oWDelta, int oHDelta, Control o)
{
using (System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath())
{
gp.AddEllipse(0, 0, o.Width - oWDelta, o.Height - oHDelta);
Region rg = new Region(gp);
o.Region = rg;
}
}
您现在可以将它们称为
buildOval(wDeltaValue,oDeltaValue,this); // when called for Form
buildOval(wDeltaValue,oDeltaValue,pictureBoxInstance);
buildOval(wDeltaValue,oDeltaValue,buttonInstance);
你可以这样做。从代码看,参数
o
似乎是一个控件。比如说
public void buildOval(int oWDelta, int oHDelta, Control o)
{
using (System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath())
{
gp.AddEllipse(0, 0, o.Width - oWDelta, o.Height - oHDelta);
Region rg = new Region(gp);
o.Region = rg;
}
}
您现在可以将它们称为
buildOval(wDeltaValue,oDeltaValue,this); // when called for Form
buildOval(wDeltaValue,oDeltaValue,pictureBoxInstance);
buildOval(wDeltaValue,oDeltaValue,buttonInstance);
将高度传递给方法,而不是按钮或图片。我不确定我是否理解你的意思。问题似乎是,如果我传递一个通用对象——它不喜欢被识别,并且一个基础对象没有宽度/高度,这是我认为的主要问题。我有一些关于基本对象的学习。你说的“泛型对象”是什么意思?我的理解是,你想从三种方法中选一种,不是吗?为此,请从方法中删除按钮和图片框参数,而不是直接传递高度
public void buildOval(int-oWDelta,int-oHDelta,Control o)
@MichaelRandall:调用者应该传递此值,而不是参数上的默认值此
只是从控件
派生的另一个东西。将高度传递给方法,而不是按钮或图片。我不确定我是否理解您的意思。问题似乎是,如果我传递一个通用对象——它不喜欢被识别,并且一个基础对象没有宽度/高度,这是我认为的主要问题。我有一些关于基本对象的学习。你说的“泛型对象”是什么意思?我的理解是,你想从三种方法中选一种,不是吗?为此,请从方法中删除按钮和图片框参数,而不是直接传递高度public void buildOval(int-oWDelta,int-oHDelta,Control o)
@MichaelRandall:调用者应该传递此值,而不是参数上的默认值这个
只是从控件
派生出来的另一个东西。你甚至不需要它是泛型的。只需接受Control
(而不是T
)。现在就开始试一试;如果它起作用,我可以给你一些版税作为会费。还有一件事:去掉o
上的默认值。相反,调用者应该传递这个;这相当精彩,但我自己也错过了一些东西;当我呼吁允许这个(形式对象)时,我似乎无法为那个制定正确的呼吁;如果o
为null,您的代码将抛出null引用异常。您甚至不需要它是泛型的。只需接受Control
(而不是T
)。现在就开始试一试;如果它起作用,我可以给你一些版税作为会费。还有一件事:去掉o
上的默认值。相反,调用者应该传递这个;这相当精彩,但我自己也错过了一些东西;当我呼吁允许这个(形式对象)时,我似乎无法为那个制定正确的呼吁;如果o
为null,代码将抛出null引用异常。