c# - Windows 窗体被视为“类型,在给定上下文中无效”
问题描述
我正在尝试使用 .net 框架自学 Windows 窗体应用程序的基础知识,因此我决定在 Visual Studio 19 上选择空项目模板,这样我就可以实际了解 .net 核心应用程序中自动生成的代码是什么关于和依赖什么。
无论如何,我通过为表单添加一个新的“类”文件来创建一个 form.cs 文件,但是在 program.cs 文件中创建我的主要方法时,“Application.run”行会生成一个错误,因为“MainForm”显然是“a类型,在给定的上下文中无效”。我了解 .net 核心与 .net 框架不同,但我认为很多 Windows 窗体代码与我所看到的看起来相同。对不起,如果这听起来很愚蠢,但我不知道如何解决这个问题。
解决方案
欢迎来到 StackOverflow
您可能 缺少括号和new
括号。
写
Application.Run(new myForm());
代替
Application.Run(myForm);
第一行所做的是创建表单对象myForm
并将其作为参数传递给Application.Run(...)
函数。
第二行会给出一个编译时错误(你得到的那个)
江安
类的Run
功能需要一个表单对象,当您在表单类上Application
调用运算符时创建该对象(在上面的代码中)new
myForm
new
当您要指定该类类型的另一个对象时,使用类型名称(没有被调用的形式类名称)。例如:
myForm frm1;
在这里,变量frm1
是在堆栈中创建的,并被指定为 type myForm
。初始化此变量时,您需要将其分配给对象。该对象是通过调用new
类上的运算符来创建的:
new myForm()
myForm
上面的行在堆中创建了一个类型的对象。要使用此对象,您需要一个可以指向此对象的变量(C# 中的引用和 C/C++ 中的指针)。为此,您可以将两个代码组合成 2 行或 1 行,如下所示
2行代码:
myForm frm1;`
frm1 = new myForm();
1 行代码
myForm1 frm1 = new myForm();
现在当你写代码时
frm1.Title = "My Form Title";
这将改变Title
在堆中创建的对象的属性值。
推荐阅读
- visual-studio - 如何处理 Azure 管道中的构建后事件?
- python - NumPy - 中值滤波器调试练习
- angular - 基于价值的不同翻译
- javascript - 有没有办法修改 chrome 添加到主屏幕弹出模式?我想将我自己的 UI 用于模态
- angular - 如何在 xCode 中使用用 Visual Studio Code 编写的 Ionic 代码?
- excel - 使用多个 Word 模板从 Excel 进行 VBA 邮件合并
- c# - 如何使用 Unity IoC 解决泛型类型继承
- windows - 安装 android 模拟器后 Docker 停止在 Windows 10 上工作
- ios - 由于错误而无法加载模块并且未调用“AppRegistry.registerComponent”。[ios,xcode]
- regex - 正则表达式捕获 beetween 标签,但不是某些字符