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
}
}
}