Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有相同对象名称的两个名称空间_C# - Fatal编程技术网

C# 具有相同对象名称的两个名称空间

C# 具有相同对象名称的两个名称空间,c#,C#,我有两个名称空间: 系统、数字和单位发动机 两者都具有类型Vector3 所以现在,每当我想使用它时,我都必须声明它前面的名称空间。像这样: protected struct CVN { public Complex h; public UnityEngine.Vector2 d; public UnityEngine.Vector3 n; } 有没有办法定义我只想从一个名称空间输入Vector3,这样我就不必每次都在这里输入namespace.Vector3 或者,我

我有两个名称空间:

系统、数字和单位发动机

两者都具有类型
Vector3

所以现在,每当我想使用它时,我都必须声明它前面的名称空间。像这样:

protected struct CVN
{
    public Complex h;
    public UnityEngine.Vector2 d;
    public UnityEngine.Vector3 n;
}
有没有办法定义我只想从一个名称空间输入
Vector3
,这样我就不必每次都在这里输入
namespace.Vector3


或者,我每次都被冗长乏味的名称空间所困扰。特别是因为我只需要Numerics中的
复杂类型,这很烦人。

如果您需要的是
系统。Numerics
复杂类型,那么:

using UnityEngine;
using Complex = System.Numerics.Complex;
在文件顶部,不使用System.Numerics
应该这样做。

这是一个别名

您可以将所需类的using指令包装在当前类的名称空间中,而不是将其放在外部。 考虑这个例子

namespace System.Numerics
{
    class MyClass
    {
    }
}

可能使用
Numerics.Complex
使用UnityEngine?然后我必须在我使用复数的每个地方说明数字,以便将问题切换到其他类型:p如果你想从
UnityEngine
名称空间使用
vector2
vector3
,你需要声明
使用vector2=UnityEngine.Verctor2
在类文件的顶部使用Vector3=UnityEngine.Vector3
。如果您使用的是Numerics中的多个类型,尤其是如果您使用的是这两个类型中名称相似的类型,我会说,尽管输入了更多的类型,但还是要坚持使用它,以便清楚地表明您在每个位置所指的类型。(为了未来读者的利益,就像6个月后的你一样)这很有趣,我不知道它有这种行为+1(为了让人信服,我不得不测试它^^)
namespace UnityEngine
{
    class MyClass
    {
    }
}
using System.Numeric;

namespace ConsoleApplication24
{
    using UnityEngine; // inside the namespace
    class Program
    {
        static void Main(string[] args)
        {
            MyClass xx = new MyClass(); // from UnitEngine instead of System.Numeric
        }
    }
}