帮忙解释一下C#隐式参数value的传值机制是怎么样的?先谢了。
问题是在我创建Web用户控件的时候产生这样的疑问的.
Private string strLoginid
{
    set{
       loginid.text = value;//只写属性
    }
    get{
       return loginid.text;//只读属性
    }
}
value?怎么样的东西,开始以为是自定义的参数,后来才知道是个隐式参数.
如果这里自己定义一个参数来代替它,该怎么做呢.请不吝赐教.
------解决方案--------------------Private string strLoginid (string my_value)
{  
  set{  
     loginid.text = value;//只写属性  
  }  
  get{  
     return loginid.text;//只读属性  
  }  
}  
这样??
------解决方案--------------------Private string strLoginid  
{  
  set{  
     loginid.text = value;//只写属性  
  }  
  get{  
     return loginid.text;//只读属性  
  }  
}
等同于
private void SetstrLoginid(string value)
{
  loginid.text = value;
}
private string GetstrLoginid()
{
  return loginid.text;  
}
public property string strLoginid read GetstrLoginid write SetstrLoginid;
这个是类似以前Delphi的写法,为了简单就变现在那样了。
知道是个什么意思就行了,说白了就是最后一句靠编译器实现,意思是声明一个字符串属性strLoginid,取值的时候用GetstrLoginid方法,赋值的时候用SetstrLoginid方法。
------解决方案--------------------value  在C# 里面是一个 准关键字了!
  你为什么要修改 呢?
------解决方案--------------------没有必要的吧,实在是想那样的话,示意如下
object myValue;
Private string strLoginid 
{ 
  set{ 
     getMyValue();//这里先将自己定义的myValue获取到值
     loginid.text = myValue;//只写属性 
  } 
  get{ 
     return loginid.text;//只读属性 
  } 
}  
------解决方案--------------------public string strLoginid  
{  
  set{  
     loginid.text = value;//只写属性  
  }  
  get{  
     return loginid.text;//只读属性  
  }  
}  
在编译成IL以后会变成两个方法,分别是
string get_strLoginid ()
和
void set_strLoginid (string value)
不存在属性了。
在这里,value的名字是不能改的。