C# 关于自定义类属性的问题,为什么只读属性不能更改?
classtest{publicboolSql_Open{getreturnSql_Open=false;}publicvoidstop_data(){Sql_Open=...
class test{
public bool Sql_Open
{
get return Sql_Open = false;
}
public void stop_data()
{
Sql_Open = false;
}
}
定义的只读类属性为什么不能被改变?
-------------------------------
如何只允许 test 类的代码gei
如何只允许 test 类的代码改变 sql_Open 属性的值 展开
public bool Sql_Open
{
get return Sql_Open = false;
}
public void stop_data()
{
Sql_Open = false;
}
}
定义的只读类属性为什么不能被改变?
-------------------------------
如何只允许 test 类的代码gei
如何只允许 test 类的代码改变 sql_Open 属性的值 展开
展开全部
最简单的办法使用private set,示例:
class Program
{
static void Main(string[] args)
{
C c = new C();
//c.S = "编译错误";
c.V("正确运行");
Console.WriteLine(c.S);
Console.ReadLine();
}
}
public class C
{
private string s;
public string S
{
get
{
return this.s;//注意返回私有的
}
private set//重要
{
this.s = value;
}
}
public void V(string s)
{
this.S = s;
//下面也行
this.s = s;
}
}
另外你的代码有明显的问题,属性里return的应该是另一个私有字段,通常是属性名的首字母小写。像你那样写运行时一般会出现循环引用,堆栈溢出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询