C#:如何遍历通过类中的数组定义的成员

妈妈D

我的课如下:

    class Student 
    {
        private string name;
        private string family;
        private string id;

        public string[] fields = {"name", "family", "id"};

        public Student(string name,string family,string id)
        {
            this.name = name;
            this.family = family;
            this.id = id;
        }              
    }

现在在另一个类中,我想遍历fields数组中定义的成员这是我的代码不起作用

    class StudentController
    {
        Student student;

        public StudentController(Student st)
        {
            this.student = st;

        }
        public void store()
        {
             foreach(string f in this.student.fields)
                    Console.WriteLine(this.student.f);
        }
    }
史蒂夫

通常,这些任务是使用反射解决的。反射API系统允许你检查的类型(在这种情况下,学生的实例),并询问其属性和与之相关的方法。优点是您不需要公共字段字符串数组,并且,如果添加新成员,遍历属性的代码也不会更改。缺点是使用反射会对性能产生相对的影响(但要真正担心的是,您应该始终在实际环境中进行测试)

但是您也可以实现一个简单的替代方法,以创建自己的ToString方法版本。

例如,将您的学生班级扩展为

public class Student
{
    private string name;
    private string family;
    private string id;

    public string[] fields = { "name", "family", "id", "all" };

    public Student(string name, string family, string id)
    {
        this.name = name;
        this.family = family;
        this.id = id;
    }
    public string ToString(string field)
    {
        switch (field)
        {
            case "name":
                return this.name;
            case "family":
                return this.family;
            case "id":
                return this.id;
            case "all":
            default:
                return $"{name}, {family}, {id}";
        }
    }
}

现在,您可以使用

Student t = new Student("John", "McEnroe", "134");
foreach(string s in t.fields)
    Console.WriteLine(t.ToString(s));

或仅用于单个字段

Console.WriteLine(t.ToString("name"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何查看C#中的自定义类成员抛出的所有异常的列表?

来自分类Dev

如何通过自定义类中的变量对自定义类列表进行排序?C#

来自分类Dev

如何在C#中遍历泛型类的属性?

来自分类Dev

如何在C#中检查自定义类数组的相等性?

来自分类Dev

如何在C#中检查自定义类数组的相等性?

来自分类Dev

如何在C ++中以最佳方式遍历类成员向量的元素?

来自分类Dev

c#如何通过静态成员将字符串映射到一组通用类中的一个类

来自分类Dev

我可以遍历类成员,就好像它们是 C++ 中的数组一样吗?

来自分类Dev

C# 计算自定义类数组中的自定义类对象

来自分类Dev

C#通过<T>定义基类

来自分类Dev

数组作为类成员在 Typescript 中未定义

来自分类Dev

通过定义成员的同一模型中的数组调用方法

来自分类Dev

C ++类作为其他类的成员,这是如何定义的?

来自分类Dev

如何通过Jquery和Ajax在用户定义的类(C#和ASP.Net)中调用方法

来自分类Dev

如何在C#中创建类对象列表的数组

来自分类Dev

如何在C ++中从其自己的定义递归调用类成员函数?

来自分类Dev

如何定义类的静态成员

来自分类Dev

如何定义动态类成员?

来自分类Dev

通过“指向类成员的指针”访问作为数组的类成员

来自分类Dev

C#中如何使用prim算法遍历矩形数组中的单元格

来自分类Dev

如何使用C#中的公共超类修改对象列表的成员?

来自分类Dev

如何遍历传递给方法的类并在C#中检索其属性值

来自分类Dev

如何在python中定义类外的成员函数?

来自分类Dev

Typescript对象类成员是通过接口定义的

来自分类Dev

在C#中访问委托中的类成员

来自分类Dev

在C#中访问委托中的类成员

来自分类Dev

C#中的类成员声明中的无效令牌'='

来自分类Dev

类c ++中的静态成员未定义引用

来自分类Dev

C ++中对类成员的“未定义”引用

Related 相关文章

  1. 1

    如何查看C#中的自定义类成员抛出的所有异常的列表?

  2. 2

    如何通过自定义类中的变量对自定义类列表进行排序?C#

  3. 3

    如何在C#中遍历泛型类的属性?

  4. 4

    如何在C#中检查自定义类数组的相等性?

  5. 5

    如何在C#中检查自定义类数组的相等性?

  6. 6

    如何在C ++中以最佳方式遍历类成员向量的元素?

  7. 7

    c#如何通过静态成员将字符串映射到一组通用类中的一个类

  8. 8

    我可以遍历类成员,就好像它们是 C++ 中的数组一样吗?

  9. 9

    C# 计算自定义类数组中的自定义类对象

  10. 10

    C#通过<T>定义基类

  11. 11

    数组作为类成员在 Typescript 中未定义

  12. 12

    通过定义成员的同一模型中的数组调用方法

  13. 13

    C ++类作为其他类的成员,这是如何定义的?

  14. 14

    如何通过Jquery和Ajax在用户定义的类(C#和ASP.Net)中调用方法

  15. 15

    如何在C#中创建类对象列表的数组

  16. 16

    如何在C ++中从其自己的定义递归调用类成员函数?

  17. 17

    如何定义类的静态成员

  18. 18

    如何定义动态类成员?

  19. 19

    通过“指向类成员的指针”访问作为数组的类成员

  20. 20

    C#中如何使用prim算法遍历矩形数组中的单元格

  21. 21

    如何使用C#中的公共超类修改对象列表的成员?

  22. 22

    如何遍历传递给方法的类并在C#中检索其属性值

  23. 23

    如何在python中定义类外的成员函数?

  24. 24

    Typescript对象类成员是通过接口定义的

  25. 25

    在C#中访问委托中的类成员

  26. 26

    在C#中访问委托中的类成员

  27. 27

    C#中的类成员声明中的无效令牌'='

  28. 28

    类c ++中的静态成员未定义引用

  29. 29

    C ++中对类成员的“未定义”引用

热门标签

归档