连接命名空间在 C# 中的工作原理

本文关键字:工作 命名空间 连接 | 更新日期: 2023-09-27 18:30:32

我是C#的新手,我正在尝试从我的main中的不同命名空间打印出一个数字。我将提供下面的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world" + x);
            Console.ReadLine();
        }
    }
}
namespace Applicaton
{
    class Program2
    {
        public int Test()
        {
            int x = 5;
            return x;
        }
    }
}

我想让 Program2 类中的 x 出现在我的主课程中,即程序类中。

连接命名空间在 C# 中的工作原理

您可以像下面这样修改代码。由于您的Program2是在另一个类中定义的,因此在访问它时,无论如何都必须使用命名空间名称对其进行完全限定。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world" + new Applicaton.Program2().Test());
            Console.ReadLine();
        }
    }
}

首先将Decalare Application设置为引用的命名空间,然后将program2设置为public,将x设置为program2的公共属性。 然后在 main 中使用类 program2。

下面是源代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Applicaton;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Program2 p= new Program2();
            Console.WriteLine("hello world" + p.x);
            Console.ReadLine();
        }
    }
}
namespace Applicaton
{
    public class Program2
    {
        public int x;
        public int Test()
        {
            x = 5;
            return x;
        }
    }
}

只需调用该类。

 Program2 p = new Program2();
 Console.WriteLine(p.Test().toString());

无论程序2有什么,你都可以调用它。或分配它。

int num = p.Test();
Console.WriteLine(num);

然后打印出来。

您需要创建该类的实例并对其调用该方法。

Program2 program = new Program2();
int x = program.Test();
Console.WriteLine("hello world" + x);

请确保包含命名空间:

using Application;

编程不是这样的。除了命名空间之外,学习一些面向对象的原则。

你需要的是"new"或实例化一个可以调用Test()方法的Program2对象。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Application;
namespace ConsoleApplication1
{
    class Program
        {
            static void Main(string[] args)
            {
                Program2 program = new Program2();
                //Below I am calling the Test() method knowing that Test() will return a value to save from having to initialize another variable.
                Console.WriteLine("hello world" + program.Test());
            }
        }
    }
    namespace Applicaton
    {
        class Program2
        {
            public int Test()
            {
                int x = 5;
                return x;
            }
        }
    }