在没有 "using" 语句的情况下在 Unity 中包含其他文件
Including other files in Unity without the "using" statement
我必须从 Unity 项目中集成某人的代码。
他们创建了一个定义 class 的文件,它是一个点数组,另一个文件使用第一个文件的 class.
问题:我在第二个文件的开头没有看到任何“using (nameOfTheFile)”:这怎么可能?
如何在第二个文件中使用第一个文件?
没有特别看到这些文件,我可以假设它们可能在同一个命名空间中。
A class 在具有 internal
或 public
可见性时,隐式可以访问与自身相同命名空间下的同一程序集中的所有内容,因此这两个 class es 可能在同一个命名空间中并且可以相互访问。
// brain.cs
namespace Brain {
public class A {
public B InstanceOfB { get; set;}
}
public class B { }
}
如果两个 classes 在不同的文件中,这仍然有效,因此上面的内容与:
/// brain.A.cs
namespace Brain {
public class A {
public B InstanceOfB { get; set;}
}
}
/// brain.B.cs
namespace Brain {
public class B { }
}
最终,在将文件添加到您的项目时,您只需要为他们在代码中使用的命名空间添加 using 语句(using Brain;
上例)。
默认命名空间编辑:
为未在代码文件中指定的 classes 设置默认命名空间。您可以在 *.csproj
文件中的 <PropertyGroup>
中的 <Project>
元素(通常是文件中的第一个 PropertyGroup)中找到默认命名空间(称为 RootNamespace
):
<!-- Brain.Common.csproj -->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
<PropertyGroup>
...
<RootNamespace>Brain.Common</RootNamespace>
<AssemblyName>Brain.Common</AssemblyName>
...
另一种方法也可能是在一种超级 class 上使用 partial
关键字并将您的 class 实现为子 class ,例如
ScriptA.cs
public partial class SuperClass
{
public class A { }
}
ScriptB.cs
public partial class SuperClass
{
public class B
{
public A = new A();
}
}
我必须从 Unity 项目中集成某人的代码。
他们创建了一个定义 class 的文件,它是一个点数组,另一个文件使用第一个文件的 class.
问题:我在第二个文件的开头没有看到任何“using (nameOfTheFile)”:这怎么可能? 如何在第二个文件中使用第一个文件?
没有特别看到这些文件,我可以假设它们可能在同一个命名空间中。
A class 在具有 internal
或 public
可见性时,隐式可以访问与自身相同命名空间下的同一程序集中的所有内容,因此这两个 class es 可能在同一个命名空间中并且可以相互访问。
// brain.cs
namespace Brain {
public class A {
public B InstanceOfB { get; set;}
}
public class B { }
}
如果两个 classes 在不同的文件中,这仍然有效,因此上面的内容与:
/// brain.A.cs
namespace Brain {
public class A {
public B InstanceOfB { get; set;}
}
}
/// brain.B.cs
namespace Brain {
public class B { }
}
最终,在将文件添加到您的项目时,您只需要为他们在代码中使用的命名空间添加 using 语句(using Brain;
上例)。
默认命名空间编辑:
为未在代码文件中指定的 classes 设置默认命名空间。您可以在 *.csproj
文件中的 <PropertyGroup>
中的 <Project>
元素(通常是文件中的第一个 PropertyGroup)中找到默认命名空间(称为 RootNamespace
):
<!-- Brain.Common.csproj -->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
<PropertyGroup>
...
<RootNamespace>Brain.Common</RootNamespace>
<AssemblyName>Brain.Common</AssemblyName>
...
另一种方法也可能是在一种超级 class 上使用 partial
关键字并将您的 class 实现为子 class ,例如
ScriptA.cs
public partial class SuperClass
{
public class A { }
}
ScriptB.cs
public partial class SuperClass
{
public class B
{
public A = new A();
}
}