好的,所以在我正在使用的控制台应用程序中,我在Class01中有一个列表(myList)
class Class01
{
public List<string> myList = new List<string>();
public void _addsList()
{
myList.Add("0001Test01");
myList.Add("0002Test02");
myList.Add("0003Test03");
myList.Add("0004Test04");
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine(myList[i] + ",");
}
}
}
我需要在Class02中读取该列表
class Class02
{
public void _callList()
{
var class02 = new Class01();
string wits2;
List<string> buffer = new List<string>();
for (int i = 0; i < class02.myList.Count; i++)
{
wits2 = class02.myList[i].Substring(0, 4);
Console.WriteLine(class02.myList[i]);
}
Console.ReadKey();
}
}
此程序的输出应将此内容写入控制台:
0001Test01,
0002Test02,
0003Test03,
0004Test04,
0001
0002
0003
0004
现在我看到GetList用来做这个
public class MyClass {
private List<string> myList = new List<string>();
public List<string> GetList()
{
return myList;
}
}
public class CallingClass {
MyClass myClass = new MyClass();
public void GetList()
{
List<string> calledList = myClass.GetList();
///More code here...
}
}
但我为我的生活无法让这个工作。我不知道我是否缺少命名空间或什么。我甚至不知道GetList是否在控制台应用程序中工作。
所以我非常感谢你的帮助。
谢谢 -
答案 0 :(得分:0)
虽然你的问题并不完全清楚什么是无效的。但我怀疑你需要把值放在列表中。如果你的意思是它没有在控制台中显示任何内容,请试试这个:
var class02 = new Class01();
string wits2;
class02._addsList();
编辑:阅读完评论后,我认为这样可以解决问题:
for (int i = 0; i < class02.myList.Count; i++)
{
wits2 = class02.myList[i].Substring(0, 4);
Console.WriteLine(class02.myList[i]);
buffer.Add(wits2);//Add it to list declared in this function
}
注意:如果您的意思是在类对象上调用_addsList
时获得输出,请确保在使用Class01
对象之前调用了此函数一次。在Class02
的第二个代码块中,您没有在_addsList
的对象上调用Class01
函数。
答案 1 :(得分:0)
在你的Class02上:
var class02 = new Class01();
class02._addsList(); //Add this on your declaration
string wits2;
然后更改您在Console.WriteLine上传递的变量:
List<string> buffer = new List<string>();
for (int i = 0; i < class02.myList.Count; i++)
{
wits2 = class02.myList[i].Substring(0, 4);
//Console.WriteLine(class02.myList[i]); //Remove this
Console.WriteLine(wits2); //Use wits2 instead since this is what you get on your Substring
}
答案 2 :(得分:0)
我认为您遗失的最重要的事情是您的课程未标记为公开
所以请在课前声明之前加上公开
public class Class02
{
......
还有一件事,为了获得所需的输出,在class02中,您要将子字符串分配给&#39;智慧&#39;变量但不打印它。您将值从列表传递到Console.Writeline。
希望这有帮助
答案 3 :(得分:0)
感谢TheVillageIdiot。我现在开始工作了。所以谢谢。我的代码现在看起来像这样:
public class Class01
{
public List<string> myList = new List<string>();
public void _addsList()
{
myList.Add("0001Test01");
myList.Add("0002Test02");
myList.Add("0003Test03");
myList.Add("0004Test04");
}
}
class Class02
{
public void _callList()
{
var class01 = new Class01();
class01._addsList(); //<--- Had to add this line
for (int i = 0; i < class01.myList.Count; i++)
{
Console.WriteLine(class01.myList[i] + ",");
}
string wits2;
List<string> buffer = new List<string>();
for (int i = 0; i < class01.myList.Count; i++)
{
wits2 = class01.myList[i].Substring(0, 4);
Console.WriteLine(wits2);
}
Console.ReadKey();
}
}
对于不理解问题的强悍者,Class02无法读取Class01中的List。
感谢您的帮助!