Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从自定义类打印foreach值_C#_Unity3d - Fatal编程技术网

C# 无法从自定义类打印foreach值

C# 无法从自定义类打印foreach值,c#,unity3d,C#,Unity3d,这是到目前为止我的代码 CUSTOMCLASS.CS public string[,] tableBR; string[] strData = {"P ,B ,B ,P ,B ,B ,B ,B ,B ,B ,P ,P ,B ,P "}; public int X_LENGTH = 104; public int Y_LENGTH = 15; #region BR VARIABLES string BigRD= ""; string[] newBigRD; st

这是到目前为止我的代码

CUSTOMCLASS.CS

public string[,] tableBR;

string[] strData = {"P  ,B  ,B  ,P  ,B  ,B  ,B  ,B  ,B  ,B  ,P  ,P  ,B  ,P  "};

public int X_LENGTH = 104;
public int Y_LENGTH = 15;

#region BR VARIABLES

string BigRD= "";
string[] newBigRD;
string realData= "";

#endregion
public Scoreboard(){
    tableBR= new string[X_LENGTH,Y_LENGTH   ];
}

public void MakeBR(string data){
    BigRD = data;

    for(int i = 0; i < strData.Length; i++){
        BigRD += strData [i];
        BigRD += ",";
    }

    newBigRD= BigRD .Split (',');

    foreach(string newData in newBigRD){
        realData = newData;
    }
}

public string ShowBigRD(){
    return realData;
}

public override string ToString(){
    return "this are all the data :" + realData.ToString();
}
string BigRD= "";

void Start(){
    StartCoroutine ("Win_Log");
}

IEnumerator Win_Log(){
    Scoreboard scoreBoard = new Scoreboard();

    scoreBoard.MakeBR(BigRD);
    Debug.Log ("This is the data : " + scoreBoard.ShowBigRD());

    yield return new WaitForEndOfFrame ();
}
它给我一个空字符串值。它只打印

“这是所有的数据:”

易如反掌

realData = newData;

否则,每次通过循环都会覆盖
字符串realData
,而不仅仅是附加它。

简单到可以更改

realData = newData;


否则,每次循环都会覆盖
字符串realData
,而不是仅仅附加它。

我猜您正在查找以下内容:

IEnumerator Win_Log()
{    
    Scoreboard scoreBoard = new Scoreboard();   
    scoreBoard.MakeBigRoad (BigRD);    

    for(int i=0; i< scoreBoard.newBigRD.Length;i++)
    {
        var realData = scoreBoard.newBigRD[i];
        Debug.Log ("This is the data : " + realdata); 
    }

    yield return new WaitForEndOfFrame ();
}
或者我们可以保留您正在使用的拆分方法

newBigRD[]:
这就是我在示例中使用的


我猜你在找这个:

IEnumerator Win_Log()
{    
    Scoreboard scoreBoard = new Scoreboard();   
    scoreBoard.MakeBigRoad (BigRD);    

    for(int i=0; i< scoreBoard.newBigRD.Length;i++)
    {
        var realData = scoreBoard.newBigRD[i];
        Debug.Log ("This is the data : " + realdata); 
    }

    yield return new WaitForEndOfFrame ();
}
或者我们可以保留您正在使用的拆分方法

newBigRD[]:
这就是我在示例中使用的



您是否意识到
strData[]
是用单个元素初始化的?什么是
realData
?看起来您需要一步一步地进行调试。在foreach循环的每次迭代中,realData都会被覆盖。您还没有向我们展示什么是realData。它的类型是什么?正如其他人所说,您正在覆盖
realData
。使用
+=
而不仅仅是
=
。或者更好的是,使用一个字符串生成器为什么你认为这是一个
null
。它可能是一个空字符串,因为在
BigRD
的末尾添加了一个逗号,所以循环中的最后一项将是一个空字符串,因此最终值设置为
realData
。真正的问题是您希望它打印什么?我是否应该删除此线程?您是否意识到
strData[]
是用单个元素初始化的?什么是
realData
?看起来您需要一步一步地进行调试。在foreach循环的每次迭代中,realData都会被覆盖。您还没有向我们展示什么是realData。它的类型是什么?正如其他人所说,您正在覆盖
realData
。使用
+=
而不仅仅是
=
。或者更好的是,使用一个字符串生成器为什么你认为这是一个
null
。它可能是一个空字符串,因为在
BigRD
的末尾添加了一个逗号,所以循环中的最后一项将是一个空字符串,因此最终值设置为
realData
。真正的问题是你想要它打印什么?我是否应该删除这个线程?顺便问一下,我如何可以每行打印一个值而不是只打印一行?按照我在评论中告诉你的做。@TylerS.Loeper如果我不使用字符串[],那么我如何显示它们?我不能用foreach来对付他们。我应该使用
length
?@christiantidoc TBH,这应该是另一个问题。@TylerS.Loeper我不能在我的自定义类上编写
debug.log
,你知道吗,先生?顺便问一句,我怎么可以每行打印一个值,而不仅仅是一行?按照我在注释中告诉你的做。@TylerS.Loeper如果我不使用字符串[]那么我如何显示它们呢?我不能用foreach来对付他们。我是否应该使用
length
?@christiantidoc TBH,这应该是另一个问题。@TylerS.Loeper我无法在我的自定义类上编写
debug.log
,您知道,先生,对吗?评论不用于扩展讨论;这段对话已经结束了。嘿,先生。1最后一个问题评论不用于扩展讨论;这段对话已经结束了。嘿,先生。最后一个问题