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

问题描述 投票:1回答:2

我有两个名称空间:

System.Numerics和UnityEngine

两者都有类型Vector3

所以现在,当我想要使用它时,我必须在它之前声明哪个命名空间。像这样:

protected struct CVN
{
    public Complex h;
    public UnityEngine.Vector2 d;
    public UnityEngine.Vector3 n;
}

有没有办法定义我只想从一个名称空间中使用Vector3所以我不必每次都输入NameSpaceHere.Vector3

或者我坚持每次都说明命名空间的繁琐性质。特别是因为我只需要来自Numerics的Complex类型,这非常烦人。

c#
2个回答
5
投票

如果您从System.Numerics所需要的只是Complex,那么:

using UnityEngine;
using Complex = System.Numerics.Complex;

在文件的顶部,没有using System.Numerics;应该这样做。这是别名。


1
投票

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

namespace System.Numerics
{
    class MyClass
    {
    }
}
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
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.