如何在顶级语句之后定义方法
How to define a method following top-level statements
我最近更新了 Visual Studio 并发现了顶级语句的这个新功能(对我来说是新功能)。
据我了解,编译器会完成 Program
class 和 Main
方法的定义,而无需您显式键入它。
这很有用,但我在定义新方法时遇到了问题。我想要一个方法在Program
class。并用顶级语句调用它。这是一些示例代码:
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();
public static void ThisShouldBeAMethodOfProgramClass()
{
Console.WriteLine("Static in Program class");
}
这给我构建错误,因为 public 静态修饰符无效。我认为它将此解释为 Main
中的局部函数。我可以删除修饰符,但这只是示例代码,我的真实代码有更多方法和 classes.
我该怎么做?我不应该为此使用顶级吗?
我希望这实际上与以下内容相同:
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();
}
public static void ThisShouldBeAMethodOfProgramClass()
{
Console.WriteLine("Static in Program class");
}
}
您可以继续使用 top-level 语句并使用部分程序追加其他成员 class。
using System;
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();
public static partial class Program
{
public static void ThisShouldBeAMethodOfProgramClass()
{
Console.WriteLine("Static in Program class");
}
}
我最近更新了 Visual Studio 并发现了顶级语句的这个新功能(对我来说是新功能)。
据我了解,编译器会完成 Program
class 和 Main
方法的定义,而无需您显式键入它。
这很有用,但我在定义新方法时遇到了问题。我想要一个方法在Program
class。并用顶级语句调用它。这是一些示例代码:
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();
public static void ThisShouldBeAMethodOfProgramClass()
{
Console.WriteLine("Static in Program class");
}
这给我构建错误,因为 public 静态修饰符无效。我认为它将此解释为 Main
中的局部函数。我可以删除修饰符,但这只是示例代码,我的真实代码有更多方法和 classes.
我该怎么做?我不应该为此使用顶级吗?
我希望这实际上与以下内容相同:
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();
}
public static void ThisShouldBeAMethodOfProgramClass()
{
Console.WriteLine("Static in Program class");
}
}
您可以继续使用 top-level 语句并使用部分程序追加其他成员 class。
using System;
Console.WriteLine("toplevel");
ThisShouldBeAMethodOfProgramClass();
public static partial class Program
{
public static void ThisShouldBeAMethodOfProgramClass()
{
Console.WriteLine("Static in Program class");
}
}