我正在开发一个实用类以建立一些常用功能。是否可以进行OOP转换
其中一个函数尝试自定义窗体表单属性。 该函数接受一个参数,它应该是一个窗体参考变量,然后它自定义它的布局。
问题是,窗体窗体是不同的对象类型,例如, Form1,Form2,...等 因此,我无法确定我应该在函数中使用哪种对象类型。
例如是公共静态无效SetFormAttributes(REF ??? targetForm)
的代码如下:
void btn_show_Click(object sender, EventArgs e)
{
this.pnl_ShowForms.Controls.Clear();
int tag = Convert.ToInt32((sender as Button).Tag);
switch (tag)
{
case 1:
Form1 frm1 = new Form1();
Utilities.SetFormAttributes(ref frm1);
this.pnl_ShowForms.Controls.Add(frm1);
frm1.Show();
break;
case 2:
Form2 frm2 = new Form2();
Utilities.SetFormAttributes(ref frm2);
this.pnl_ShowForms.Controls.Add(frm2);
frm2.Show();
break;
case 3:
Form3 frm3 = new Form3();
Utilities.SetFormAttributes(ref frm3);
this.pnl_ShowForms.Controls.Add(frm3);
frm3.Show();
break;
}
}
namespace WFA_ShowFormsInPanel
{
public static class Utilities
{
public static void SetFormAttributes(ref ??? targetForm)
{
{
targetForm.FormBorderStyle = FormBorderStyle.None;
targetForm.Dock = DockStyle.Fill;
targetForm.WindowState = FormWindowState.Maximized;
targetForm.TopLevel = false;
}
}
}
}
为什么ref? (添加填充符合最小注释大小要求) –
我已经测试了代码建议,它的工作原理。 但是,为什么ref不是必需的?我是面向对象的新手,我认为如果我想改变原始对象,我必须通过引用。任何点击或链接解释这将非常感激。 – Alvin