没有 main 方法的 C# 类

2023-11-27

我正在学习 C#,而且对它很陌生,所以请原谅我提出这个看似愚蠢的问题。我有一些 Java 经验,我注意到 C# 程序也需要一个main()他们的主类中的方法。

如果我想创建一个不是主类的类,即导入到主类中的类,该怎么办?

我尝试这样做,当我编译时(通过 cmd 使用csc File.cs)编译器说它将生成的 .exe 没有main()方法。这是否意味着我错了?every类需要一个main()方法,还是我编译错误?

也许问题出在代码中(因为我依赖于我对 Java 语法的了解),代码如下:

public class Class
{
    int stuff;
    public Class(int stuff)
    {
        this.stuff = stuff;
        stuff();
    }
    public void method()
    {
        stuff();
    }
}

EDIT:恐怕这被严重误解了。我不是在问该文件是否需要一个 main 方法,而是在问如何将这个类导入到另一个类中,因为我意识到,如果我要这样做,我就不能有一个 main 方法(正如我所说,我有一些 Java 经验),但每当我尝试在没有 Java 的情况下进行编译时,编译器都会告诉我需要一个。



##Not all classes need `Main` method.

正如 MSDN 所说

Main 方法是 C# 控制台应用程序的入口点或 窗口应用程序。 (图书馆和服务不需要主 方法作为入口点。)。当应用程序启动时,主 method 是第一个被调用的方法。

C# 程序中只能有一个入口点。如果你还有更多 除了一个具有 Main 方法的类之外,您还必须编译您的程序 使用 /main 编译器选项来指定使用哪个 Main 方法 入口点。


只有一个类需要保留Main方法,充当应用程序入口点的类。

主要方法的签名是:static void Main(string[] args) or static void Main() or static int Main(string[] args) or static int Main()

查看此链接了解更多详细信息:Main() and Command-Line Arguments (C# Programming Guide)


对于上面的例子:

public class MyClassName // changed the class name, avoid using the reserved keyword :P
{
    int stuff;
    public MyClassName(int stuff)  // is the constructor
    {
        this.stuff = stuff;
    }
    public void method()
    {
        stuff = 1;
    }
}

如果需要使用该类,可以使用 main 方法创建一个静态类:

class ProgramEntry
{
    static void Main(string[] args)
    {
        MyClassName classInstance = new MyClassName(2);
        classInstance.method();
    }
}

开始C# 9引入了没有 Main 方法的程序选项。现在,您可以直接在类外部的文件中编写代码,而不必声明 Main 方法。欲了解更多详情,请参阅顶级语句 - 没有 Main 方法的程序.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有 main 方法的 C# 类 的相关文章

  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • 将类对象放置在向量中?

    我注意到我可以将一个类放置在一个向量中 这是我的程序 我收到以下错误 out blackjack exe blackjack obj blackjack obj error LNK2019 unresolved external symbo
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 在 C# 中检查 PowerShell 执行策略的最佳方法是什么?

    当你跑步时Get ExecutionPolicy在 PowerShell 中 它得到有效的执行政策 https learn microsoft com en us powershell module microsoft powershell
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 无法将字符串文字分配给装箱的 std::string 向量

    这是我的类型系统的简化版本 include
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • Android - 前缀“xmlns”不能显式绑定到任何名称空间; “xmlns”的命名空间也不能显式绑定到任何前缀

    有人遇到这个 xmlns 命名空间问题吗 见下文 我无法再构建我的工作项目了 起初我以为这是我的 git 分支 所以我切换到原始开发和主分支 问题仍然存在 我清理并重建了我的项目 问题仍然存在 我清理并同步了我的成绩文件 问题仍然存在 最后
  • 中断的易失性与内存屏障

    Let x and y是主代码和中断代码之间共享的变量 我的想法volatile的一点是 它只是并且始终需要在主代码中使用的硬件变量和中断变量 每次使用x and y通过禁用中断来保证主代码中的原子性 Do x and y确实需要volat
  • LINQ-To-SQL 和多对多关系删除

    我在两个表之间存在多对多关系 比如说 朋友 和 食物 如果朋友喜欢某种食物 我会在 FriendsFoods 表中插入一行 如下所示 ID Friend Food 1 Tom Pizza FriendsFoods 有一个主键 ID 以及分别
  • 数组连接返回空数组

    我使用以下方法将多个项目添加到数组中concat在事件处理程序中如下 var selectedValues each selected levels data kendoListBox dataSource data function i
  • 如何以编程方式为 Java 中的 AWS Cognito 用户池中的已登录用户启用或禁用 MFA?

    我正在使用以下代码 但它不会更改 AWS 中的任何内容 尽管它不会返回文档中所述的任何内容 https docs aws amazon com cognito user identity pools latest APIReference
  • jQuery:删除除内部元素之外的元素

    有没有办法删除除内部元素之外的元素 div class gallery a href images rep png title rep img src http example com uploads rep png class thumb
  • 是否可以将预览、图像分析和视频捕获与 CameraX 结合起来?

    是否可以绑定Preview ImageAnalysis and VideoCapture同时 成对组合 所有可能的组合 即 Preview ImageAnalysis Preview VideoCapture and ImageAnalys
  • 如何从magento中的cms页面传递带有块表单内容的参数

    我想传递一个带有块代码的变量 例如magento中的JSON类型 block type multibanners multibanners category id 9 name multibanners alias multibanners
  • ContentResolver.insert 始终返回 null

    我试图通过按下按钮来设置自定义铃声 但从 ContentResolver 的插入方法中获取 null 以下是负责设置铃声的代码 我检查了 stackoverflow 本身 一些用户说它对他们有用 但在我的例子中 我将变量 newUri 设置
  • UserPrincipal 对象中的域名在哪里?

    我正在使用System DirectoryServices ActiveDirectory类来查找所有 Active Directory 用户 代码很简单 var context new PrincipalContext ContextTy
  • 使用 Firebase 进行分页/无限滚动

    我有一个我创建的节点的子节点childByAutoId 我正在尝试在 TableView 中使用它进行分页 但我不知道如何操作 我的数据库如下所示 items KKM7Fv8H7dCiD2xChYB userID 1231231 KKM7F
  • VBA 分割字符串循环

    我正在尝试拆分字符串并创建一个循环来遍历列中的单元格 存在一些挑战 拆分适用于ActiveCell only 循环遍历所有单元格直到 LastRow 但填充所有单元格 分割字符串值来自ActiveCell only 数组的分割开始于i 0即
  • HTML5 输入标记中的数字格式

    这是我的输入
  • ReactJS Array.push 函数在 setState 中不起作用

    到目前为止 我正在制作一个原始的测验应用程序 其中包含 3 个问题 全部是对还是错 在我的handleContinue方法有一个调用 将用户输入从无线电表单推送到userAnswers大批 第一次运行效果很好handleContinue 之
  • Gridview - 单击图像可在 Viewpager 中查看图像

    这是一个从 json 获取图像的 gridview 而且效果很好 我想单击此网格视图中的图像以显示完整图像并可以滑动它 我发现这个问题的解决方案是使用Viewpager 如何在gridview中点击图片来显示图片并且可以滑动 您可以更轻松地
  • 监听Mac键盘播放/暂停事件

    某些 Mac 应用程序 例如 iTunes 和 Spotify 会对某些 Apple 键盘上的播放 暂停 下一个 上一个按钮做出反应 想必他们正在利用某种 NSNotification 我该如何做同样的事情呢 我通过使用以下命令对 NSAp
  • 捆绑包有问题

    我尝试命令bundle install local但它显示问题 bash usr local bin bundle usr local bin ruby bad interpreter No such file or directory 请
  • \n 在 python 中的工作[重复]

    这个问题在这里已经有答案了 我目前正在学习 python 课程 当谈论转义序列时 他们谈到 n 用于在新行中打印字符串 但是当它以以下方式使用时为什么我会得到不同的输出 gt gt gt st Hello nWorld gt gt gt s
  • Python:os.path.isfile 无法识别以数字开头的文件

    所以 我正在尝试合并os path isfile or os path exists进入我的代码 在搜索以字母开头的文件名时成功找到某些常规文件 pdf png 我正在使用的文件命名标准 并且不能因用户而更改 以数字开头 随后无法使用相同的
  • 没有 main 方法的 C# 类

    我正在学习 C 而且对它很陌生 所以请原谅我提出这个看似愚蠢的问题 我有一些 Java 经验 我注意到 C 程序也需要一个main 他们的主类中的方法 如果我想创建一个不是主类的类 即导入到主类中的类 该怎么办 我尝试这样做 当我编译时 通