none
c#属性问题 RRS feed

  • 问题

  • private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
            {
                int i=dataGridView1.CurrentCellAddress.X;
                int j = dataGridView1.CurrentCellAddress.Y;
               
                
            }
    上面的CurrentCellAddress属性用途是:获取当前处于活动状态的单元格的行索引和列索引。在这个属性后面点一点会出来X和Y这2个属性。我想问一下X和Y2个属性和CurrentCellAddress是什么关系?为什么CurrentCellAddress后面加一点会出来这2个属性呢?一般情况下属性后面点一点出来的都是一些对获取该属性值的操作比如转换类型等。
    2009年11月19日 5:01

答案

  • 你可能对于面向对象的思想还不是很熟悉

    属性可以是某一个复杂的类,这个类包含属性、方法、事件等...

    举个例子

    有个类是 电脑

    电脑这个包含一个属性 CPU  是类CPU的实例
    而这个CPU包含属性 主频
    那么可以通过电脑.CPU.主频 来访问这个属性 同时CPU这个类还可以包含一些方法之类的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年11月19日 5:32
    版主

全部回复

  • 你可能对于面向对象的思想还不是很熟悉

    属性可以是某一个复杂的类,这个类包含属性、方法、事件等...

    举个例子

    有个类是 电脑

    电脑这个包含一个属性 CPU  是类CPU的实例
    而这个CPU包含属性 主频
    那么可以通过电脑.CPU.主频 来访问这个属性 同时CPU这个类还可以包含一些方法之类的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年11月19日 5:32
    版主
  • 你的意思是属性内部的get或set里面有方法或者类是吗?通过属性后跟一点 就可以调用get或set中的方法或类是吗?
    2009年11月19日 5:40
  • 你好!

    我将你上面的例子,变一下可能会更直观一些。

    下面的 X, Y 实际是的在 MyPoint 这个类中定义的。


    public partial class Form1 : Form
    {
        public class MyPoint
        {
            public int X { get; set; }
            public int Y { get; set; }
        }
    
        public MyPoint CurrentCellAddress2 { get; set; }
    
        public Form1()
        {
            int x = this.CurrentCellAddress2.X;
            int y = this.CurrentCellAddress2.Y;
    
    
            InitializeComponent();
        }
    }


    知识改变命运,奋斗成就人生!
    2009年11月19日 6:31
    版主
  • 属性里的get有可能返回其他类的一个实例,比如MyProperty返回一个类A的实例:
    myObject.MyProperty. //这时会提示你所有的类A的公共的方法和属性,字段等
    周雪峰
    2009年11月19日 7:10
    版主