JBTALKS.CC

标题: C# get property by name? [打印本页]

作者: ~Zero    时间: 2011-4-25 03:07 PM
标题: C# get property by name?
在 php 我可以这样做:
  1. $property_name = "id";
  2. echo $custom_class->{$property_name};
复制代码
然后 custom_class 的 id 会被 echo 出来。

那在 C# 办得到吗?要怎样?
作者: 宅男-兜着走    时间: 2011-4-25 03:48 PM
本帖最后由 宅男-兜着走 于 2011-4-25 03:51 PM 编辑

回复 1# ~Zero

   可以, 使用 Reflection。
http://www.csharp-examples.net/reflection-examples/
作者: Super-Tomato    时间: 2011-4-25 04:49 PM
在 php 我可以这样做:然后 custom_class 的 id 会被 echo 出来。

那在 C# 办得到吗?要怎样?
~Zero 发表于 2011-4-25 03:07 PM



C# 應該可以使用 delegate 办到吧
作者: ~Zero    时间: 2011-4-26 10:11 AM
谢谢。reflection 可以。
http://www.vcskicks.com/properties.php
作者: goodhermit95    时间: 2011-4-26 09:37 PM
原来有这样的东西,每次弄到我写code写到长长==
作者: ~Zero    时间: 2011-4-27 11:18 AM
本帖最后由 ~Zero 于 2011-4-27 11:19 AM 编辑

haha 我也是,因为接触到 php 了才发现到 php 的方便。
可以用一个 foreach loop 来 initialize 所有东西,
例如从 database column 或 $_POST items.
  1. foreach ($_POST as $key => $value) {
  2.      $object->{$key} = $value;
  3. }
复制代码
不需要
  1. $object->id = $_POST['id'];
  2. $object->name = $_POST['name'];
  3. $object->date = $_POST['date'];
  4. ......
复制代码





欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5