C# Console.WriteLine() 在 main() 之外不起作用

本文关键字:不起作用 main Console WriteLine | 更新日期: 2023-09-27 17:57:03

如果这是重复的,我深表歉意,但我无法找到我遇到的问题的任何答案。我正在使用以下代码块:

IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
Console.WriteLine("Interface information for {0}.{1}     ",
        computerProperties.HostName, computerProperties.DomainName);
foreach (NetworkInterface adapter in nics)
{
    IPInterfaceProperties properties = adapter.GetIPProperties();
    Console.WriteLine(adapter.Description);
    Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
    Console.WriteLine("  Interface type ... : {0}", adapter.NetworkInterfaceType);
    Console.WriteLine("  Physical Address ........... : {0}",
               adapter.GetPhysicalAddress().ToString());
    Console.WriteLine("  Is receive only.............. : {0}", adapter.IsReceiveOnly);
    Console.WriteLine("             Multicast......... : {0}", adapter.SupportsMulticast);
    Console.WriteLine();
}

当我在没有调试的情况下运行时,并且此代码在 Main() 方法中,Console.WriteLine()打印输出。但是,当我将其放入public static void类时,输出为空白。谁能解释为什么会发生这种情况以及我应该怎么做。我还在学习 C#,所以我确信这是一个初学者的错误。任何帮助将不胜感激。

C# Console.WriteLine() 在 main() 之外不起作用

我猜你的其他类中的代码永远不会被执行。你不需要类是公共静态和 void(不确定这是否可能),但你希望你使用的方法成为公共静态 void。

这是您希望其他类的外观:

public class OtherClass {
    public static void Method() {
        // Console.WriteLine code here
    }
}

然后你的 main 应该调用该方法:

public class OriginalClass {
    public static void Main(String[] args) {
        OtherClass.Method();
    }
}

如果你的意思是其他方法/函数而不是类,它将看起来像这样:

public class OriginalClass {
    public static void Main(String[] args) {
        Method();
    }
    public static void Method() {
        // Console.WriteLine code here
    }
}
"

Main"是.NET环境中的一种特殊方法。它是每个.NET程序的"入口点"。

当您的应用程序/程序运行时,将调用 Main,并将执行此方法中的每个命令。

如果你把你的代码放到其他方法或类中,并且你没有在 Main 中调用它,显然什么都不会发生。所以如果你想运行其他方法,你必须在 Main 中调用它。

希望有用。