C#命名空间通信

C#命名空间通信,c#,methods,namespaces,C#,Methods,Namespaces,作为新手,我可以问一下如何从另一个名称空间调用名称空间的方法吗?如果可能的话,感谢你树立了一个榜样 例如:(1)如何设置MY_主要类的属性以使用它们;(2)如何在MY_次要命名空间中调用AddNumbers方法?谢谢 using.. etc namespace MY_PRIMARY { public partial class SomethingHere { public Boolean holiday { get

作为新手,我可以问一下如何从另一个名称空间调用名称空间的方法吗?如果可能的话,感谢你树立了一个榜样

例如:(1)如何设置MY_主要类的属性以使用它们;(2)如何在MY_次要命名空间中调用AddNumbers方法?谢谢

    using.. etc

    namespace MY_PRIMARY
    {
        public partial class SomethingHere
        {
            public Boolean holiday { get; set; } = false;
            public int age { get; set; } = 18;
            //etc... 
        }

        class Program
        {
            private static void Main()
            {
            // some code here.. and..

            public int AddNumbers(int number1, int number2)
            {
                int result = number1 + number2;
                return result;
            }
        }
    };

    namespace MY_SECONDARY
    {
        public partial class SomethingElseHere
        {
            public Boolean holiday { get; set; } = false;
            public int age { get; set; } = 18;
            //etc... 
        }

        class Program
        {
            static void Main()
            {
            // some code here..
            }
            // and..

            Program outer = new Program();
            outer.AddNumbers(3, 18);       // <--- this is failing..
        }
    }

;
使用。。等
名称空间MY_PRIMARY
{
公共部分类在这里
{
公共布尔假日{get;set;}=false;
公共整数{get;set;}=18;
//等等。。。
}
班级计划
{
私有静态void Main()
{
//这里有一些代码..和。。
公共整数地址编号(整数编号1,整数编号2)
{
int result=number1+number2;
返回结果;
}
}
};
名称空间MY_SECONDARY
{
这里有公共部分类
{
公共布尔假日{get;set;}=false;
公共整数{get;set;}=18;
//等等。。。
}
班级计划
{
静态void Main()
{
//这里有一些代码。。
}
//和。。
程序外部=新程序();

outer.AddNumbers(3,18);//名称空间是用来对对象进行语义分组的。我有点搞不懂为什么有两个程序类。一个类库和一个程序更有意义。无论如何。。。 假设在命名空间程序中有一个Object1, 程序中有一个Object2 Object2有一个名为someMethod的方法。 要调用此方法,您要做的是 a) 在第一节课上加上“using Program.Second”。 b) 创建Program.Second.Object2的实例,并调用该实例上的方法

因此,假设您想让Program()的对象执行以下操作:

(编辑)更新了我的答案,我复制了你的代码,发现你的命名空间没有关闭,因此,你有嵌套的命名空间和类。另外,有些代码直接在你的类中,而不是在函数中


另外,不要定义2个Main()方法,这是应用程序的入口点。

…对函数和类的位置进行一些修改…请参见:

using Alias = MY_PRIMARY.Program;

namespace MY_PRIMARY
{
    public partial class SomethingHere
    {
        public Boolean holiday { get; set; } = false;
        public int age { get; set; } = 18;
        //etc... 
    }

    public class Program
    {
        private static void Main()
        {
            // some code here.. and..
        }

        public int AddNumbers(int number1, int number2)
        {
            int result = number1 + number2;
            return result;
        }
    };

    namespace MY_SECONDARY
    {
        public partial class SomethingElseHere
        {
            public Boolean holiday { get; set; } = false;
            public int age { get; set; } = 18;
            //etc... 
        }

        class Program
        {
            static void Main()
            {
                // some code here..
                // and..
                Alias outer = new Alias();
                outer.AddNumbers(3, 18);       // <--- OKAY...
            }
        }
    }
}
使用Alias=MY_PRIMARY.Program;
名称空间MY_PRIMARY
{
公共部分类在这里
{
公共布尔假日{get;set;}=false;
公共整数{get;set;}=18;
//等等。。。
}
公共课程
{
私有静态void Main()
{
//这里有一些代码..和。。
}
公共整数地址编号(整数编号1,整数编号2)
{
int result=number1+number2;
返回结果;
}
};
名称空间MY_SECONDARY
{
这里有公共部分类
{
公共布尔假日{get;set;}=false;
公共整数{get;set;}=18;
//等等。。。
}
班级计划
{
静态void Main()
{
//这里有一些代码。。
//和。。
别名外部=新别名();

outer.AddNumbers(3,18);//
Program outer=new Program();
MY_SECONDARY.Program
,而不是
MY_PRIMARY.Program
。问题是您有两个
Program
类,只有一个类有
AddNumbers
方法。您需要
var outer=new MY_PRIMARY.Program()
以获得具有该方法的程序。但是,您添加到
MY_SECONDARY.Program
的任何内容都不会在该对象中。这些文件是否在同一个文件中?如果是,我认为这将导致运行控制台应用程序时出现问题。如果它们在单独的控制台项目中,那么这也将是一个问题。非常感谢h、 事实上,老实说,我已经试过了,但我还是按照你的建议再试了一次。我一定是做错了什么事(为了回答评论,这两个名称空间在同一个文件中)。我得到的错误是:“名称'outer.AddNumbers'在当前上下文中不存在”我也不明白为什么…让这个课程public@Nick那么,发布复制您的问题的实际最小代码。Glenn所做的更改应该足以修复到目前为止您发布的示例代码。这就是我拥有的:名称空间MY_PRIMARY{public class Program{private static void Main(){}public int AddNumbers(int number1,int number2){int result=number1+number2;返回结果;}}}}};名称空间MY_SECONDARY{public class Program{static void Main(){}MY_PRIMARY.Program outer=new MY_PRIMARY.Program();outer.AddNumbers(3,18)};这到底是什么错误?你的代码是在单独的文件中还是全部在一个文件中?你还应该为不同的类使用不同的名称。@Fabioln:谢谢你,先生,它起作用了!现在,我确实理解了这里的语法,但是,不允许在没有使用别名的情况下使用MY_PRIMARY.Program?@Nick,我想只能更改“别名”根据“MY_PRIMARY.Program”…或将名称“Alias”更改为其他名称…例如:“MY_Program”。。。
using Alias = MY_PRIMARY.Program;

namespace MY_PRIMARY
{
    public partial class SomethingHere
    {
        public Boolean holiday { get; set; } = false;
        public int age { get; set; } = 18;
        //etc... 
    }

    public class Program
    {
        private static void Main()
        {
            // some code here.. and..
        }

        public int AddNumbers(int number1, int number2)
        {
            int result = number1 + number2;
            return result;
        }
    };

    namespace MY_SECONDARY
    {
        public partial class SomethingElseHere
        {
            public Boolean holiday { get; set; } = false;
            public int age { get; set; } = 18;
            //etc... 
        }

        class Program
        {
            static void Main()
            {
                // some code here..
                // and..
                Alias outer = new Alias();
                outer.AddNumbers(3, 18);       // <--- OKAY...
            }
        }
    }
}