标题:困惑我的get( )和set( )
只看楼主
AngelMMGY33
Rank: 2
等 级:论坛游民
帖 子:14
专家分:15
注 册:2010-5-25
 问题点数:0 回复次数:5 
困惑我的get( )和set( )
这里把我给卡住了,看不明白了。
public class A
{
private string b;  
public string c
{
get {return b;}

}
}
关键是这句还有private string b;  和public string c,既然我用get( )返回的是b,为什么非要还得在下面声明一个公有变量c呢?b和c又有什么关系呢?不可能是摆看看的吧。


[ 本帖最后由 AngelMMGY33 于 2010-5-26 12:53 编辑 ]
搜索更多相关主题的帖子: 困惑 set get 
2010-05-26 12:51
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
得分:0 

楼主以前肯定是搞别的开发的吧?啥工具?

private width;
public Width{get {return width;} set{width=value>=0?value:0; //OTHER}}

上面称属性,在WINDOWS设计时属性栏里的项目就是这样的,看上面的例子这样可以做值的限定、成员保护等等功能,有时赋值可能还可产生某些事件和方法调用等等。

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2010-05-26 12:57
AngelMMGY33
Rank: 2
等 级:论坛游民
帖 子:14
专家分:15
注 册:2010-5-25
得分:0 
,呵呵,没有,我也是照猫画虎,书上看不懂网上查不到答案就来这里请教一下,我是个编程初学者,以前也接触过一点,但到后面有难度了就放弃了,这次想好好学学,以后会经常提一些比较幼稚的问题,呵呵,当然要请楼上的兄弟和各位多多帮助了,呵呵。
照jacklee师傅的说法,
private 类型A b;
public 类型B c
{
get {return b;}
就相当于属性的一个格式了,就是后面需要跟着一行public 类型(类型A和类型B必须是同类型) 变量名 。 其作用是为值(b)的保护和限定了.是这样么?

[ 本帖最后由 AngelMMGY33 于 2010-5-26 13:11 编辑 ]
2010-05-26 13:09
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
得分:0 
你装了MSDN没,输入属性,类似的还有索引器什么的,看一下这种东西的概念就明白意思了

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2010-05-26 13:14
AngelMMGY33
Rank: 2
等 级:论坛游民
帖 子:14
专家分:15
注 册:2010-5-25
得分:0 
恩,装了,好,我看看。
2010-05-26 13:16
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
得分:0 
面向对象的三大特性之一:封装。
private string b;     让外部的类不能访问该字段;
//将b设置为只读状态,也就是说外部的类只能读取该字段,而不能写入;
public string B
{
    get{return b;}
    // set{b = value;}    //给 b 赋值
}

例如:
//假设我们设置输入的年龄不能低于18岁
public class Student
{   
     private int age;
     public int Age
    {
        get{return age;}
        set
        {
            if(value < 18)
                value = 18;
            age = value;
        }
    }
}

public class Test
{
    Student s = new Student();
    s.Age = 5;
    Console.WriteLine(s.Age);        //打印出18;
    s.Age = 20;
    Console.WriteLine(s.Age);        //打印出20;
}

2010-05-26 17:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-308224-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.120561 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved