1

基本上,我试图将 WriteLine 的内容移动到 WinForm 中的标签框,作为面向对象编程的介绍。我相信我有一些语法错误,而且我知道我有 writeline 的方法是无效的。因此,感谢任何帮助使其正常工作。这只是我所做的尝试之一。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ConsoleHelloWorld.Program;


namespace WindowsFormHelloWorld
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string words = new ConsoleHelloWorld.Program.Main(words);
            label1.Text = words;

        }
    }
}

这是我引用的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleHelloWorld
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            string words = "hello world";
            Console.WriteLine(words);
            Console.ReadLine();
        }
    }
}
4

2 回答 2

0

您的words变量是本地变量,即它的范围是声明它的方法,即Main. 在该方法之外,您无法引用它。

要使变量可访问,您需要将其设为公共字段(或类的属性)。如果您需要在没有该类类型的实例的情况下访问它,则应声明该字段static。然后您的代码将如下所示:

public static class Program
{
    public readonly static string Words = "hello world";
    //...   
}

假设 windows 应用程序项目在 windows 应用程序窗体中具有对控制台应用程序项目的引用,您可以编写:

string words = ConsoleHelloWorld.Program.Words;

此外,您不需要启动控制台应用程序,除了您不会这样做(考虑 Cuong Le 的回答,如果您打算同时启动控制台和 Windows 应用程序)。

于 2013-01-31T08:04:02.403 回答
0

让它工作。原来我不正确地扎根。(我认为 root 的工作方式更像是 android 文件结构。)基本上,我创建了一个单独的类来保存 Hello World 变量,并且只是调用它来确定我是否想将字符串打印到控制台或 WinForm 应用程序。

初始代码块:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleHelloWorld
{


    public static class Program
    {
        public static class Hello
        {
            public static string words = "Hello World";
        }
       public static void Main(string[] args)
       {
           string word = ConsoleHelloWorld.Program.Hello.words;

           Console.WriteLine(word);
           Console.ReadLine();

       }
   }
}

WinForm 调用类:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ConsoleHelloWorld; //Program.Hello;


namespace WindowsFormHelloWorld
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string word = ConsoleHelloWorld.Program.Hello.words;
            label1.Text = word;

        }
    }
}

在未来的项目中,我只会在自己的项目中保留由各种环境运行的代码。

于 2013-02-04T16:06:37.950 回答