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;}
}
展开
 我来答
超大蒲公英
2014-10-23 · TA获得超过741个赞
知道小有建树答主
回答量:758
采纳率:75%
帮助的人:742万
展开全部
//相当于这样
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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freeeeeewind
推荐于2016-12-01 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1353万
展开全部
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;
        }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式