![]() |
1
6
你可以通过反射(通过 Type.GetProperties 和 PropertyInfo.SetValue 但是我不推荐。它将降低可读性和可维护性,并对性能产生负面影响。 列出属性并定义它们的初始值的好处是,您可以在构造函数中看到它,就在前面。或者,您可以为属性提供支持字段,并在字段上直接定义它们。 |
![]() |
2
1
我真的不会这么做。属性应该由构造函数显式初始化,这就是它们存在的原因。别忘了初始化字段。 但我不知道你为什么需要它,所以这里有一些代码。 要可靠地设置任何属性(包括私有属性)并不容易。通常我这样做(在我脑子里,我明天会用我真正的代码检查):
|
![]() |
3
0
我不推荐,但既然你问:
|
![]() |
4
0
像这样做。工作很好。唯一的问题是你不能依赖订单。
从 horses mouth : getProperties方法不返回特定顺序的属性,例如字母顺序或声明顺序。您的代码不能依赖于返回属性的顺序,因为顺序不同。
也就是说,你的问题更好(比如软件设计
更好的
)通过手动分配所有属性来解决。如果您发现自己的属性太多,那么应该使用容器来代替。一
|
![]() |
5
0
我可能不建议将所有属性设置为非空的固定值…尤其是,假定所有属性都对该默认状态满意,甚至更天真的是,类的用户最可能期望为空(或者更准确地说是
作为一个建议,如果这是为了显示“?”在一个还不知道特定值的UI中,也许您可以在框架内使用适当的绑定类。 例如,WinForms绑定类具有“NullValue”属性,当数据源中包含null或dbnull.Value时,该属性将传递给绑定控件的属性。
但是,如果你真的想沿着你所要求的道路走下去,就像上面提到的那样,
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |