Получить все имена свойств другого класса - Unity 5 C # - PullRequest
0 голосов
/ 28 сентября 2018

Я создал этот класс под названием Genes, и я хочу получить все его свойства внутри другого скрипта.Я попытался использовать

PropertyInfo[] props = typeof(Genes).GetProperties();

, но props - это пустой массив.Я думаю, что typeof не работает.Это мой класс Genes:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Genes 
{
    private float size;
    private float speed;
    private float probability;
    private int color;

    public Genes(float size, float speed, float probability, int color) 
    {
        this.size = size; 
        this.speed = speed; 
        this.probability = probability; 
        this.color = color; 
    }
}

и я в основном хочу бегать по размеру, скорости, вероятности и цвету, используя цикл foreach.В чем проблема?

1 Ответ

0 голосов
/ 28 сентября 2018

Либо сделайте ваши свойства полей, которые имеют методы получения и установки:

public class Genes 
{
    private float Size { get; set; }
    private float Speed { get; set; }
    private float Probability { get; set; }
    private int Color { get; set; }

    public Genes(float size, float speed, float probability, int color) 
    {
        this.Size = size; 
        this.Speed = speed; 
        this.Probability = probability; 
        this.Color = color; 
    }
}

или используйте GetFields, если вы действительно хотите поля:

typeof(Genes).GetFields();

Независимо от того, что вы выбрали, этиКроме того, члены должны быть либо public, либо вы должны использовать BindingFlags.NonPublic для поиска непубличных членов:

typeof(Genes).GetProperties(BindingFlags.NonPublic);

или

typeof(Genes).GetFields(BindingFlags.NonPublic);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...