Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将这些合并到一个函数中_C#_Visual Studio - Fatal编程技术网

C# 如何将这些合并到一个函数中

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())

试图代码干净;目标是创建完整的.Net对象。
无论对象类型如何,我都希望有一个调用,因为我认为这会很快失控

区域建筑群
…您可以执行以下操作。从代码看,参数
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引用异常。