如何从C#中的Main()获取复杂的返回值

Kos*_*ruk 1 c# exe return

用C#编写的exe文件,我需要将一个复杂的返回值返回给另一个C#项目

这是我的代码:

class Program
{
    private class MyObject
    {
        private int num;

        public int Num
        {
            get
            {
                return (this.num);
            }
            set
            {
                this.num = value;
            }
        }

        public MyObject(int num)
        {
            this.Num = num;
        }

    }

    [STAThread]
    public static MyObject Main(string[] args)
    {
        return new MyObject(5);
    }
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:...\ConsoleApplication1.exe'不包含适用于入口点的静态'Main'方法.

我试过玩它但是我没有成功使它返回一个复杂的值.

Jon*_*eet 7

你不能从一个Main方法来做到这一点,这个方法是进程的切入点.

如果您正在编写要直接从其他代码调用的代码,那么您几乎肯定会构建一个类库项目.您可以将一个应用程序的引用添加到另一个应用程序,但这是不常见的(至少在单元测试之外).如果你想这样做,你应该只调用一个不同的方法而不是Main.(你可以Main在一个类中声明一种方法,并使用另一个类作为"普通"入口点,但这看起来毫无意义.)

  • @KostyaSydoruk:您可以使用某种进程间通信方法(套接字,管道,stdin/stdout等),或使用文件系统来传达您的返回值. (2认同)