在c#中,我想定义一个函数,参数类型为"属性类型"
象这样
void function(propertyinfor proinfo){}但是我发现个问题,proinfo是反射出来的,这个在程序设计时候,好象不能自动的列出来,只能通过函数名称这样写
void function (string proinfo){
//这里再反射出这个属性名的属性
}那么我想问一下,这种情况下,有什么好的方法能叫我们在输入代码的时候,编译器能智能感知我定义类的属性名呢,
比如,我们有个类C,有个属性P,能不能在我们使用function函数,在填写参数时写上 C.的时候,编译器自动列出所有这个类的属性呢,然后我再直接选 择一下就行,而不是再输入函数名称,叫编译器自动感知出属性的存在.就这些,帮我看一下
象这样
void function(propertyinfor proinfo){}但是我发现个问题,proinfo是反射出来的,这个在程序设计时候,好象不能自动的列出来,只能通过函数名称这样写
void function (string proinfo){
//这里再反射出这个属性名的属性
}那么我想问一下,这种情况下,有什么好的方法能叫我们在输入代码的时候,编译器能智能感知我定义类的属性名呢,
比如,我们有个类C,有个属性P,能不能在我们使用function函数,在填写参数时写上 C.的时候,编译器自动列出所有这个类的属性呢,然后我再直接选 择一下就行,而不是再输入函数名称,叫编译器自动感知出属性的存在.就这些,帮我看一下
说编译器不准确,应该说是IDE.
熊猫大侠,你能不能细说一下,没看明白,特别 是你的c=>c.xxx这个=>是什么意思
设置类,属性自动能选择
通过单击“工具”菜单上的“选项”,再单击“文本编辑器”文件夹中的“C#”,然后单击“IntelliSense”,可以访问“IntelliSense”属性页。
http://msdn.microsoft.com/zh-cn/library/fcf2zk43.aspx
http://msdn.microsoft.com/zh-cn/library/sx2bwtw7(VS.80).aspx
{
PropertyInfo p;
} class tools<T>
where T:IproperyInfo
{
static ProperyInfo Propery(T obj,Action<T> act)
{ retrun obj.p;
}
} class a:IproperyInfo
{
int _x
int x
{
get{
//设置好properyInfo
SetproperyInfo();
retrun _x
}
}
}调用
a a1=new a1();
tools<a>.Propery(a1,c=>c.x)