猿问

在 Unity 中包含其他文件而不使用“using”语句

我必须集成 Unity 项目中某人的代码。

他们创建了一个包含点数组类定义的文件,以及使用第一个文件的类的另一个文件。

问题:我在第二个文件的开头没有看到任何“using (nameOfTheFile)”:这怎么可能?如何在第二个文件中使用第一个文件?


HUWWW
浏览 147回答 2
2回答

米琪卡哇伊

如果没有特别查看这些文件,我可以假设它们可能位于同一名称空间中。internal当类具有可见性时,它可以隐式地访问与自身位于同一命名空间下的同一程序集中的所有内容public,因此这两个类可能位于同一命名空间中并且可以相互访问。// brain.csnamespace Brain {&nbsp; &nbsp;public class A {&nbsp; &nbsp; &nbsp; public B InstanceOfB { get; set;}&nbsp; &nbsp;}&nbsp; &nbsp;public class B { }}如果这两个类位于不同的文件中,这仍然有效,因此上面的内容与以下内容相同:/// brain.A.csnamespace Brain {&nbsp; &nbsp;public class A {&nbsp; &nbsp; &nbsp; public B InstanceOfB { get; set;}&nbsp; &nbsp;}}/// brain.B.csnamespace Brain {&nbsp; &nbsp;public class B { }}最终,您只需在将文件添加到项目时(using Brain;对于上面的示例),为他们在代码中使用的命名空间添加 using 语句。默认命名空间编辑:默认命名空间是为代码文件中未指定的类设置的。您可以在元素中的文件中找到默认命名空间(称为RootNamespace)(通常是文件中的第一个 PropertyGroup):*.csproj<PropertyGroup><Project><!-- Brain.Common.csproj --><?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">&nbsp; ...&nbsp; <PropertyGroup>&nbsp; &nbsp; ...&nbsp; &nbsp; <RootNamespace>Brain.Common</RootNamespace>&nbsp; &nbsp; <AssemblyName>Brain.Common</AssemblyName>&nbsp; &nbsp; ...

元芳怎么了

partial另一种选择也可能是在一种超类上使用关键字并将您的类实现为子类,例如ScriptA.cspublic partial class SuperClass{    public class A { }}ScriptB.cspublic partial class SuperClass{    public class B     {        public A = new A();    }}
随时随地看视频慕课网APP
我要回答