【发布时间】:2019-05-25 01:22:51
【问题描述】:
我有这些类,一个是模型,另一个是 Listener,第三个是 Util 类。我想通过第一个中的变量 map 访问 Terrains,但不希望公共访问内部类 Terrain。有什么办法吗?
它打印 错误 CS0052: Inconsistent Accessibility: field type System.Collections.Generic.List 少 比字段“MapaMundiInfoScript.map”更容易访问
public class MapaMundiInfoScript : MonoBehaviour {
public static bool changeInMap= false;
public static List<Terrain>map = new List<Terrain>();
void Start(){
Terrain terrain = new Terrain(0,0);
Terrain.TerrainPart initialPart = new Terrain.TerrainPart(20,20,0,0);
terrain.terrainParts.Add (initialPart);
map.Add(terrain);
changeInMap=true;
}
class Terrain{
int XPosition;
int ZPosition;
public List <TerrainPart> terrainParts = new List<TerrainPart> ();
public Terrain(int XPosition, int ZPosition){
this.XPosition=XPosition; this.ZPosition=ZPosition;
}
public class TerrainPart
{
int XSize;
int ZSize;
int XPosition;
int ZPosition;
TerrainPartReturn ReturnTerrainPart(int num1,int num2,int num3,int num4)
{
return new TerrainPart (num1,num2,num3,num4);
}
public TerrainPart(int XSize,int ZSize,int XPosition,int ZPosition){
this.XSize = XSize;
this.ZSize = ZSize;
this.XPosition=XPosition;
this.ZPosition =ZPosition;
}
}
}
public class MapListener : MonoBehaviour {
void Update () {
if (MapaMundiInfoScript.changeInMap) {
foreach(MapaMundiInfoScript.Terrain terrain in MapaMundiInfoScript.mapMundi)
{
foreach(terrain.terrainPart terrainPart in terrain.terrainParts)
{
RegionDraw.Draw(terrainPart);
}
}
MapaMundiInfoScript.changeInMap = false;
}
}
public class RegionDraw
{
/***
Implementantion Draw Method
***/
}
【问题讨论】:
-
public static List<Terrain>map = new List<Terreno>();在语法上不正确 -
@Oxymoron 我把所有的代码都翻译成英文了,这部分忘了,修复了,谢谢。
-
您可能希望使用文本编辑器来查找/替换,因为这不是唯一的例子。以
Terrain.TerrainPart initialPart = new Terreno.TerrainPart(20,20,0,0);为例
标签: c# unity3d inner-classes encapsulation