Non*_*biz 0 c# program-entry-point class word-wrap
我有一个长度很长的程序,有一个类和很多方法.除了using语句之外,所有这些都必须包含在一个包含整个文件的巨大类中.这个庞大的包装类的必要性似乎毫无意义,这是在以后制作一个包含多个文件的程序时使用的吗?
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Linq;
public class CollectKeywordsFromLogs // why do I need this ( when it is the only class [as i just added the test class for the question])
{
//a class
//constructor
//methods
//methods
public static void Main() // and why would i need to explicitly declare this public? it works either way, and a private main would be useless no?
{}
}
Run Code Online (Sandbox Code Playgroud)
这是我的完整档案.我编译csc file.cs然后编译file.exe.
哦,对,区分大小写.谢谢.但仍然 - >为什么我不需要使用测试类时的包装类?
C#中没有全局方法或变量.它们必须位于类声明(如类或结构)中.这也适用于Main()方法.
Eric Lippert对SO问题发表了一个很好的答案,为什么C#不允许像C++这样的非成员函数,并在他的博客中进一步跟进:为什么C#不实施"顶级"方法?
您还可以找到以下MSDN链接:C++和C#之间的比较
Main()方法是C#程序的入口点.程序中应该只有一个入口点,但是,程序中可以有多个包含Main()方法的类.但是,如果您有多个Main方法,则应通过使用编译器选项/main编译程序来指定要用作入口点的Main方法.
Main()方法必须static且不应该public根据MSDN.默认情况下,VS2008将Main()创建为静态私有,运行时可以毫无问题地调用它.您可以将其更改为public,它将编译正常.但是,我认为这是非常尴尬的,因为你不能阻止其他类调用Main(),因为它是公共的.
有关Main方法的详细信息,您可以看到以下MSDN文章:Main()和命令行参数(C#编程指南)
| 归档时间: |
|
| 查看次数: |
1705 次 |
| 最近记录: |