属性或索引器不能分配给“ - ”它是只读的 [英] Property or indexer cannot be assigned to "--" it is read only
问题描述
我有以下代码
private readonly string _cstrvalueMember; // 保留值
private readonly string _cstrdisplayMember;
object obj;
LookupDTO lkpDTOo =(LookupDTO)obj;
if (lkpDTOo.strValueMember == 3)
{
lkpDTOo.strDisplayMember = - 跨度>;
}
但 lkpDTOo.strDisplayMember = - ;
这里我收到的错误如< pre lang =vb> 错误 50 Property 或 indexer ' XXX.DTO.LookupDTO.strDisplayMember '无法分配 - 它是只读的
即使我删除了readonly并将其公开,但它不是working
您还没有在班级中为strDisplayMember
定义setter。
尝试public string strDisplayMember
{
get { return _cstrdisplayMember; }
set { this ._ cstrdisplayMember = value 跨度>; }
}你和strValueMember有类似的问题。
这是一个刷新的参考< a href =http://www.dotnetperls.com/property>属性 [ ^ ]
您必须了解变量的范围和访问权限!
这里有一个只读属性(并且它是只读,因为它只有属性 getter ,所以你只能得到它的值):
public string strDisplayMember
{
get { return _cstrdisplayMember; }
}
要使它可写,你必须添加一个属性 setter (可以设置其值),类似于这:
public string strDisplayMember
{
get { return _cstrdisplayMember; }
set {_cstrdisplayMember = value ; }
}
http:/ /msdn.microsoft.com/en-us/library/w86s7x04.aspx [ ^ ]
---
帮自己一个忙,学习C#的这些基本元素 - 不要写任何代码直到你理解它们......
你需要一个属性 setter
例如< br $>
public string strDisplayMember
{
get { return _cstrdisplayMember; }
set {cstrdisplayMember = value ;}
}
否则该物业是只读的
I have the following code
private readonly string _cstrvalueMember; //Holds value
private readonly string _cstrdisplayMember;
object obj;
LookupDTO lkpDTOo =(LookupDTO) obj;
if (lkpDTOo.strValueMember == "3")
{
lkpDTOo.strDisplayMember = "--";
}
But lkpDTOo.strDisplayMember = "--";
here I am getting error like
Error 50 Property or indexer 'XXX.DTO.LookupDTO.strDisplayMember' cannot be assigned to -- it is read only
Even though I removed readonly and made it public it is not working
You have not defined the setter forstrDisplayMember
in your class.
Trypublic string strDisplayMember { get { return _cstrdisplayMember; } set { this._cstrdisplayMember = value; } }You have a similar problem with strValueMember.
Here is a reference to brush up on Properties[^]
You have to learn what scope and access of a variable are!
You have here a read only property (and it's read only because it have only property getter, so you can only get its value):
public string strDisplayMember { get { return _cstrdisplayMember; } }
To make it writable you have to add a property setter (which enables to set its value), something like this:
public string strDisplayMember { get { return _cstrdisplayMember; } set { _cstrdisplayMember = value; } }
http://msdn.microsoft.com/en-us/library/w86s7x04.aspx[^]
---
Do yourself a favor and learn these basic elements of C# - do not write any code until you understand them by heart...
You need a property setter
e.g.
public string strDisplayMember { get { return _cstrdisplayMember; } set { cstrdisplayMember = value;} }
Otherwise the property is read-only
这篇关于属性或索引器不能分配给“ - ”它是只读的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!