Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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# 如何使用列表从类传递数据_C#_Console Application - Fatal编程技术网

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
。override
ToString()
a
中,这里是如何实现的:您能否更详细地解释一下您希望如何使用该值?它是否仅用于在控制台中显示。WriteLine?或者您真的需要值作为
int
本身吗?覆盖
ToString
。覆盖
a
中的
ToString()
。下面是方法:您能更详细地解释一下您想对该值做什么吗?它是否仅用于在控制台中显示。WriteLine?或者您真的需要
int
本身的值吗?不,我想通过使用ArrayList实现此解决方案,只需在原始foreach中复制我的代码即可。它仍然会使用您的ArrayList。我想在列表中添加该值,正如您在我的代码中看到的,我正试图添加到列表中。否,我想通过使用ArrayList实现此解决方案只需在原始foreach中复制我的代码即可。它仍然会使用您的ArrayList。我想在列表中添加该值,正如您在我试图添加到列表中的代码中看到的那样