作者kairy (血腹兽)
看板C_Sharp
标题[问题] 请问要怎麽写呢?
时间Thu Oct 9 13:37:41 2008
假设有一个存在的Class A
Class A
{
public string str1;
public string str2;
public string str3;
.
.
.
}
在另一个class中
使用System.Collection的类别来储存Class A
如
List<A> aList = new List<A>();
在aList中存了许多A的实例,且属性的值都不一样
今天有可能作一个静态方法印出在List中某个特定的属性的字串吗?
像是
指定的属性
↓↓
public static string printSpecialFieldAcrossList(List<A> list, ????, string separator)
{
}
我会的方法只有把属性写死进去,如:
把List中每个实例的Str1印出来
public static string printStr1AccrossList(List<A> list, string separator)
{
string retStr = "";
IEnumrator iterator = list.GetEnumerator();
while(iterator.MoveNext())
{
A a = iterator.Current;
// 这里的a.Str1,只是举例
retStr = retStr + a.str1 + separator;
}
return retStr;
}
这种写法虽然能做到
但是问题是,只要A的属性有十种,我就必须写十种这种行为几乎完全相同的method
差别只有在a.str1时叫用别的属性可能是 a.str2 或 a.str3
所以想请教各位板友
有没有能在method中同时指定是什麽属性的方法
不好意思问题很长,谢谢各位板友
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.56.13.124
※ 编辑: kairy 来自: 61.56.13.124 (10/09 13:42)
1F:→ hpo14:public static object func( -, type T, -) ? 10/09 13:47
2F:→ O2000:Type的GetProperty 方法 10/09 14:38
3F:推 horngsh:可以找找C++中有关function template的资讯.. 10/09 15:09
4F:推 horngsh:Sorry..这是C#版, C#中有支援class template(叫泛型)..但 10/09 15:10
5F:→ horngsh:是有没有支援function template要再查查.. 10/09 15:11
6F:→ kairy:唔~我还是不太了解怎麽做,可以再细节一点吗? 10/09 15:45
7F:推 help0430:2楼的方法就可以知道你这个物件的内容了 10/09 20:43