为什么属性名称和方法的名称不能相同呢?

事理 2013-01-18 01:44:16

public string CommandText{get;set;}

public void CommandText(string sql){}

这样在一个类中就会提示已经包含CommandText的定义,为什么?
...全文
520 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2013-01-18
  • 打赏
  • 举报
回复
啥函数名字相同但形参不同就不会报错,而变量名字和函数只要名字一同就报错了? 为啥不能让函数与变量同名我们也比较好理解.因为函数名有时也能当一般的变量类型一样用,比如有函数指针的话,我们可以把函数名作为右值赋给函数指针.如果要判断两个相同的名字是普通变量还是函数名会给编译器带来一些难度.所以编译器偷懒干脆就不让你们同名好了.实际上如果编译器要多做些事是可以做到让函数名与一般变量名相同的.据说有些语言或有些编译器中确实可以做到让函数名与变量名相同.只是能够让函数与变量同名又没啥实际好处,所以费力不讨好的事还是少做了.另外编译器让函数名可以相同,只要函数签名不同即可自然是为了支持函数重载这样的特性.这是吃力但讨好的事.其实编译语言中很多错误不是说真的不能那样,只是编译器会遵守一定的规则去检查.如果换个编译器可能遵守的规则又不一样了.这时错的也变成对的了.
gxingmin 2013-01-18
  • 打赏
  • 举报
回复
事理 2013-01-18
  • 打赏
  • 举报
回复
那个只是一个例子,明白了。
bdmh 2013-01-18
  • 打赏
  • 举报
回复
访问 CommandText,谁知到你要干嘛
dalmeeme 2013-01-18
  • 打赏
  • 举报
回复
属性和方法都是类的成员,类的成员名不能相同。

110,539

社区成员

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

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

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