public class cc
{
private int intMN_ID;
public int MN_ID
{
get{ return intMN_ID;}
set { intMN_ID = value;}
}
}我在页面1中写下了以下代码:
cc c = new cc();
c.MN_ID =20;
1.为什么c.MN_ID不能再访问intMN_ID了呢?即c.MN_ID.intMN_ID不行。2.我在执行c.MN_ID =20;时进行调试,发现先执行了set { intMN_ID = value;}。
所以我想问这里是不是将value的值20赋值给了intMN_ID了?即意思是不是就是value的值就是MN_ID的值呢?因为这里通过c.MN_ID =20已经将20给了MN_ID。谢谢大家。

解决方案 »

  1.   

    get/set我就知道怎么用,一向不求甚解,没研究那么多.小弟也很菜
      

  2.   

    1.为什么c.MN_ID不能再访问intMN_ID了呢?即c.MN_ID.intMN_ID不行。
    intMN_ID是private的2.我在执行c.MN_ID =20;时进行调试,发现先执行了set { intMN_ID = value;}。
    所以我想问这里是不是将value的值20赋值给了intMN_ID了?即意思是不是就是value的值就是MN_ID的值呢?因为这里通过c.MN_ID =20已经将20给了MN_ID。
    value是一个隐含参数,就是你赋的值
      

  3.   

    还有一个问题,这里是先执行c.MN_ID =20;还是当执行到这条语句时就跳到set { intMN_ID = value;}呢?如果是先执行的话,那么value才会有值的,否则怎么能知道value的值是20呢?所以我想知道c.MN_ID =20是先执行还是后执行?
      

  4.   

    如果不能访问intMN_ID的话,那我觉得写属性这样的代码也没有太大的意思了。因为可以直接把变量的值赋给其他的变量或是什么的。如txt.text =c.MN_ID.tostring()可以直接写成
    int a=2;
    txt.text=a.tostring()。你们说呢?
      

  5.   

    应该说成c.MN_ID =20与set { intMN_ID = value;}谁先执行?如果是前者,那么value才有值20,否则没有。如果是后者先执行,那么value的值从哪传来?
      

  6.   

    c.MN_ID =20
    会被编译成:
    c.set_MN_ID( 20 )而那个set属性则会编译成set_MN_ID函数。