来自外部文件的 C# .NET 运行 代码
C# .NET running code from an external file
我是 C# 的新手,我想知道是否可以将部分代码(从我的主表单)移动到外部 .cs 文件( 仍然在同一个解决方案中),对我的 form1.cs 文件中的变量和函数的访问级别与我原来的 form1.cs 文件相同。
我正在使用最新版本的 .NET 框架,我没有其他(外部)代码参考。
这是我正在寻找的一个简单示例:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Code1
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
// variables
text1 = "Hello"
public void ExternalCode()
{
this.BackgroundImage = null;
Btn1.Text = "Click me";
Lbl1.Text = text1;
}
private void Btn1_Click(object sender, EventArgs e)
{
ExternalCode();
}
}
}
这个表单只有一个名为“Btn1
”的按钮和一个名为“Lbl1
”的标签。
我希望方法 SeparateCode
中的代码位于单独的文件中,但仍然能够从 Form3
和 Form3
访问变量和控件仍然能够执行外部文件中的方法 (ExternalCode
).
我想过将此文件设为 Form3.cs
的子文件,但正如我所说,我对此还是很陌生,所以我真的不知道该怎么做。
是的,这是可能的,因为 class 已被声明为部分,这里:
v-----v
public partial class Form3 : Form
此关键字表示您从中获取该代码的文件可以是众多文件之一,所有文件都为此 class 声明了自己的部分内容。
所以您可以做的是将另一个文件添加到您的项目中,并确保它有助于此 class。为此,您必须:
- 在文件中声明 class 与原始文件属于同一命名空间
- 将里面的class声明为和原来的class一样
请注意,您不必提及继承,例如原始文件中带有 : Form
的部分,因为这仍然可以从原始文件中理解。
因此,如果您添加包含以下内容的文件:
namespace Code1 // <-- this has to be the same
{
public partial class Form3 // <-- as does this
{
public void ExternalCode()
{
this.BackgroundImage = null;
Btn1.Text = "Click me";
Lbl1.Text = text1;
}
}
}
然后您可以从原始文件中删除 ExternalCode
,它应该仍然可以正常工作。
编译器会将所有这些文件视为构建相同的一个,class,Form3
。
我是 C# 的新手,我想知道是否可以将部分代码(从我的主表单)移动到外部 .cs 文件( 仍然在同一个解决方案中),对我的 form1.cs 文件中的变量和函数的访问级别与我原来的 form1.cs 文件相同。
我正在使用最新版本的 .NET 框架,我没有其他(外部)代码参考。
这是我正在寻找的一个简单示例:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Code1
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
// variables
text1 = "Hello"
public void ExternalCode()
{
this.BackgroundImage = null;
Btn1.Text = "Click me";
Lbl1.Text = text1;
}
private void Btn1_Click(object sender, EventArgs e)
{
ExternalCode();
}
}
}
这个表单只有一个名为“Btn1
”的按钮和一个名为“Lbl1
”的标签。
我希望方法 SeparateCode
中的代码位于单独的文件中,但仍然能够从 Form3
和 Form3
访问变量和控件仍然能够执行外部文件中的方法 (ExternalCode
).
我想过将此文件设为 Form3.cs
的子文件,但正如我所说,我对此还是很陌生,所以我真的不知道该怎么做。
是的,这是可能的,因为 class 已被声明为部分,这里:
v-----v
public partial class Form3 : Form
此关键字表示您从中获取该代码的文件可以是众多文件之一,所有文件都为此 class 声明了自己的部分内容。
所以您可以做的是将另一个文件添加到您的项目中,并确保它有助于此 class。为此,您必须:
- 在文件中声明 class 与原始文件属于同一命名空间
- 将里面的class声明为和原来的class一样
请注意,您不必提及继承,例如原始文件中带有 : Form
的部分,因为这仍然可以从原始文件中理解。
因此,如果您添加包含以下内容的文件:
namespace Code1 // <-- this has to be the same
{
public partial class Form3 // <-- as does this
{
public void ExternalCode()
{
this.BackgroundImage = null;
Btn1.Text = "Click me";
Lbl1.Text = text1;
}
}
}
然后您可以从原始文件中删除 ExternalCode
,它应该仍然可以正常工作。
编译器会将所有这些文件视为构建相同的一个,class,Form3
。