C#里的 自动属性是不是相当于简写了 通常的setget方法,以下这么写对么
publicvoidaaa{publicinta;publicvoidset(inta){this.a=a;}publicvoidget(){returna;}}跟下面的...
public void aaa{
public int a;
public void set(int a){
this.a=a;
}
public void get(){
return a;
}
}
跟 下面的一样把 ?
public void aaa{
public int a{get; set;}
} 展开
public int a;
public void set(int a){
this.a=a;
}
public void get(){
return a;
}
}
跟 下面的一样把 ?
public void aaa{
public int a{get; set;}
} 展开
2个回答
展开全部
//相当于这样
public void aaa{
private int _a;
public int a{
get{return _a;}
set{_a=value;}
}
}
更多追问追答
追问
Java没有get,set关键字,自己写的话用一个方法,如果要初始化值和获取值 只需要调用set,get方法。我先知道public int A { get; set;}这样写 是怎么初始化值的?
追答
java中只能自己写get和set方法。
你说的初始化,其实和自动属性已经没有什么关系了,自动属性在编译时,内部也会生成私有字段值。对于字段的初始化,会依据字段的类型,取默认值。如果是引用类型,就初始为null。
如果是值类型,如int就初始为0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class AAA
{
private int a;
public int A
{
get{ return a;}
set{ a = value;}
}
与以下的写法一样的
public class AAA
{
public int A { get; set;}
}
更多追问追答
追问
get,set方法用于初始化值和获取值,从Java角度说没有get,set关键字,自己写的话应该这样:
public void set(int a){
this.a=a;
}
public void get(){
return a;
}
C#出来这个自动属性有什么意思?
追答
C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作.由于自动属性可以省略后背字段,结果我很多时候都会忍不住用自动属性,而且代码也比带后备字段的属性来的明了。这样子写,这两种方法没任何区别.
class myClass
{
//私有字段
privae string name;
//一般属性用法
public string Name
{
get { return name;}
set { name = value;}
}
}
class myClass
{
//自动属性。自动属性不再需要你定义私有字段,
// 编译器会自动为你添加私有字段
public string Name
{
get;
set;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询