获取另一个类的属性的所有名称-Unity 5 C#

时间:2018-09-28 14:29:44

标签: c# unity3d

我创建了一个名为Genes的类,我想在另一个脚本中获取其所有属性。我尝试使用

var newOptions = {
    'red' : 'Red',
    'blue' : 'Blue',
    'green' : 'Green',
    'yellow' : 'Yellow'
};
var selectedOption = 'green';

var select = $('#example');
if(select.prop) {
  var options = select.prop('options');
}
else {
  var options = select.attr('options');
}
$('option', select).remove();

$.each(newOptions, function(val, text) {
    options[options.length] = new Option(text, val);
});
select.val(selectedOption);

但是props是一个空数组。我认为typeof无法正常工作。这是我的基因类:

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

我基本上想使用foreach循环遍历大小,速度,概率和颜色。有什么问题吗?

1 个答案:

答案 0 :(得分:4)

要么使您的字段具有getter和setter的属性:

supportActionBar!!.elevation = 0.0f 

或如果确实需要字段,请使用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(); ,或者您必须使用BindingFlags.NonPublic查找非公开成员:

public

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