C# 如何使用列表从类传递数据
此代码提供以下输出:C# 如何使用列表从类传递数据,c#,console-application,C#,Console Application,此代码提供以下输出: namespace ConsoleApplication3 { class A { public int a = 100; } class Program { static void Main(string[] args) { ArrayList list = new ArrayList(); A a = new A() ;
namespace ConsoleApplication3
{
class A
{
public int a = 100;
}
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
A a = new A() ;
list.Add(a);
foreach (var i in list)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
}
如何在不使用
.A
和this
的情况下从类A
获取值?我想继续使用ArrayList
实现这一点。如果您不想使用.a
和此
,则可以使用反射:
ConsoleApplication3.A
在每个循环中:
using System.Reflection;
...
注:我不确定您的最终目标是什么,但我几乎可以肯定,有很多更简单的方法可以做到这一点。如果您不想使用
.a
和此
,那么出于此目的,您可以使用反射:
ConsoleApplication3.A
在每个循环中:
using System.Reflection;
...
注:我不确定你的最终目标是什么,但我几乎可以肯定有很多更简单的方法可以做到这一点。你可以在
A
类中重写ToString()
FieldInfo[] fields = i.GetType().GetFields(); // All fields of the class A will be here.
foreach (var field in fields)
{
// write out them all
Console.WriteLine(field.GetValue(i));
}
您可以在类
A
中重写ToString()
FieldInfo[] fields = i.GetType().GetFields(); // All fields of the class A will be here.
foreach (var field in fields)
{
// write out them all
Console.WriteLine(field.GetValue(i));
}
我想这可能就是你想要的:
public class A
{
public int a = 100;
public override string ToString()
{
return a.ToString();
}
}
我想这可能就是你想要的:
public class A
{
public int a = 100;
public override string ToString()
{
return a.ToString();
}
}
override
ToString
。overrideToString()
在a
中,这里是如何实现的:您能否更详细地解释一下您希望如何使用该值?它是否仅用于在控制台中显示。WriteLine?或者您真的需要值作为int
本身吗?覆盖ToString
。覆盖a
中的ToString()
。下面是方法:您能更详细地解释一下您想对该值做什么吗?它是否仅用于在控制台中显示。WriteLine?或者您真的需要int
本身的值吗?不,我想通过使用ArrayList实现此解决方案,只需在原始foreach中复制我的代码即可。它仍然会使用您的ArrayList。我想在列表中添加该值,正如您在我的代码中看到的,我正试图添加到列表中。否,我想通过使用ArrayList实现此解决方案只需在原始foreach中复制我的代码即可。它仍然会使用您的ArrayList。我想在列表中添加该值,正如您在我试图添加到列表中的代码中看到的那样