C# 属性 方法

来源:百度知道 编辑:UC知道 时间:2024/06/21 02:36:15
我不知道这样问对不对,我发现了C#中一个有趣的现象,例如对数据库的操作中有个SqlCommand类,我实例化一个SqlCommand command,然后点command.Parameters,这个Parameters应该是command的一个属性吧,然后我再点command.Parameters.Add(),这个Add应该是个方法吧,如果是这样那我就奇怪了,为什么属性中还能写方法呢?希望高手能告诉我为什么,还是我理解错了。我并不是C#的初学者,只是这个以前没有注意到,现在要编写三层架构,要学微软公司的这种方法。还有类似个问题就是方法中能再写方法吗,我知道类中能再嵌套类的,希望猛男猛女们能告诉我,在这里先谢谢了!

你可以这么想,command.Parameters你这里应该是往存储过程里面参数赋值吧?你在Parameters单击右键去转到定义,可以看到他是SqlCommand类里面的一个只读属性。好了,下面进入重点:
我先现在构造一个这种情况:
public class B
{
public void disp()
{
Console.WriteLine("aaaaaaaa");
}
}
public class A
{
protected B tst;
public B TST
{
get { return new B(); }
}

}
class Program
{
static void Main(string[] args)
{
A a = new A();
a.TST.disp();
}
}
最后main方法里a.TST.disp();就是完全自定义构造的。
归根结底就是因为Parameters这个属性返回的是一个类的对象
这个对象可以打点掉出返回类对象的方法
我觉的我解释的已经挺清楚了,你可以自己想想看

属性中不能写方法
方法中可以写方法,比如递归调用