为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
HUWWW 2023-07-09 10:19:05
我必须集成 Unity 项目中某人的代码。他们创建了一个包含点数组类定义的文件,以及使用第一个文件的类的另一个文件。问题:我在第二个文件的开头没有看到任何“using (nameOfTheFile)”:这怎么可能?如何在第二个文件中使用第一个文件?
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

如果没有特别查看这些文件,我可以假设它们可能位于同一名称空间中。


internal当类具有可见性时,它可以隐式地访问与自身位于同一命名空间下的同一程序集中的所有内容public,因此这两个类可能位于同一命名空间中并且可以相互访问。


// brain.cs

namespace Brain {

   public class A {

      public B InstanceOfB { get; set;}

   }

   public class B { }

}

如果这两个类位于不同的文件中,这仍然有效,因此上面的内容与以下内容相同:


/// brain.A.cs

namespace Brain {

   public class A {

      public B InstanceOfB { get; set;}

   }

}



/// brain.B.cs

namespace Brain {

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

  ...

  <PropertyGroup>

    ...

    <RootNamespace>Brain.Common</RootNamespace>

    <AssemblyName>Brain.Common</AssemblyName>

    ...


查看完整回答
反对 回复 2023-07-09
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

partial另一种选择也可能是在一种超类上使用关键字并将您的类实现为子类,例如


ScriptA.cs


public partial class SuperClass

{

    public class A { }

}

ScriptB.cs


public partial class SuperClass

{

    public class B 

    {

        public A = new A();

    }

}


查看完整回答
反对 回复 2023-07-09
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信