问个代码自动感知的问题

hanlixuan 2010-10-21 08:21:44
在c#中,我想定义一个函数,参数类型为"属性类型"
象这样
void function(propertyinfor proinfo){

}

但是我发现个问题,proinfo是反射出来的,这个在程序设计时候,好象不能自动的列出来,只能通过函数名称这样写
void function (string proinfo){
//这里再反射出这个属性名的属性
}

那么我想问一下,这种情况下,有什么好的方法能叫我们在输入代码的时候,编译器能智能感知我定义类的属性名呢,
比如,我们有个类C,有个属性P,能不能在我们使用function函数,在填写参数时写上 C.的时候,编译器自动列出所有这个类的属性呢,然后我再直接选 择一下就行,而不是再输入函数名称,叫编译器自动感知出属性的存在.

就这些,帮我看一下
...全文
191 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
LorenLiu 2010-10-21
  • 打赏
  • 举报
回复
LZ想自己写一个Intellisense的功能吗?
bloodish 2010-10-21
  • 打赏
  • 举报
回复
VS里自带智能感知,估计你没设置对

Tools->Options->Text Editor->C#->IntelliSense

另外

Tools->Options->Text Editor->C#->General

也需要设置一下

中文的VS,自己找对应着找一下
porschev 2010-10-21
  • 打赏
  • 举报
回复
没看懂。。。。
z289830131 2010-10-21
  • 打赏
  • 举报
回复
楼主想法不错...
hanlixuan 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wanghui0380 的回复:]
泛型委托 action<T> 或 func<T>

void function<T>(Func<T> fun){}

调用 function(c=>c.xxx)
[/Quote]

熊猫大侠,你能不能细说一下,没看明白,特别 是你的c=>c.xxx这个=>是什么意思
wanghui0380 2010-10-21
  • 打赏
  • 举报
回复
泛型委托 action<T> 或 func<T>

void function<T>(Func<T> fun){}

调用 function(c=>c.xxx)

宝_爸 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hanlixuan 的回复:]

第一,我咋就不结贴了呢
第二,我想做的功能就是,我在编译器里打上类名,编译器怎么能自动显示出来这个类里所有的属性
[/Quote]


这个编译器是你自己做的还是Visual studio.
说编译器不准确,应该说是IDE.
hanlixuan 2010-10-21
  • 打赏
  • 举报
回复
是的,能达到这种功能吗
w4bjx 2010-10-21
  • 打赏
  • 举报
回复
莫非你说的是智能提示?
hanlixuan 2010-10-21
  • 打赏
  • 举报
回复
第一,我咋就不结贴了呢
第二,我想做的功能就是,我在编译器里打上类名,编译器怎么能自动显示出来这个类里所有的属性
龍月 2010-10-21
  • 打赏
  • 举报
回复
学习!
宝_爸 2010-10-21
  • 打赏
  • 举报
回复
我也看得糊里糊涂的。
宝_爸 2010-10-21
  • 打赏
  • 举报
回复
你是想做个编译器/IDE,还是想vs实现你的功能?
村长_乐 2010-10-21
  • 打赏
  • 举报
回复
没看明白...
tyy283 2010-10-21
  • 打赏
  • 举报
回复
bd。。。。。。。。。。。。。。
heavilyarmed 2010-10-21
  • 打赏
  • 举报
回复
你 不结贴·············
Ryan20082009 2010-10-21
  • 打赏
  • 举报
回复
泛型委托 action<T> 或 func<T>

void function<T>(Func<T> fun){}

调用 function(c=>c.xxx)
wanghui0380 2010-10-21
  • 打赏
  • 举报
回复
我想了一下,常规手段无法实现,除非他们继承同样接口

IproperyInfo
{
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)
wuyq11 2010-10-21
  • 打赏
  • 举报
回复
自带的智能感知(Intellisense)功能
设置类,属性自动能选择
通过单击“工具”菜单上的“选项”,再单击“文本编辑器”文件夹中的“C#”,然后单击“IntelliSense”,可以访问“IntelliSense”属性页。
http://msdn.microsoft.com/zh-cn/library/fcf2zk43.aspx
http://msdn.microsoft.com/zh-cn/library/sx2bwtw7(VS.80).aspx

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧