为什么要声明Name和Sex?不声明这两个属性不行吗?

解决方案 »

  1.   

    这样写属性就有用了:
    public class myclass
    {
    string name;
    string sex;
    public myclass(string _name,string _sex)
    {
    name=_name;
    sex=_sex;
    } public string Name
    {
    get
    {
        return name;
    }
    set
    {
        name=value;
    }
    } public string Sex
    {
    get
    {
        return sex;
    }
    set
    {
                                    if ( value == "男" || value == "女" )
            sex=value;
                                    else
                                       throw new Exception();
    }
    }
    }
      

  2.   

    在这其中Name和Sex是起什么作用的?
    这就是班级里的两个属性呀,姓名和性别
    为什么在public myclass(string _name,string _sex)里没有涉及到这两个属性?涉及到了呀,这个方法是给这两个属性付值的,括号里就是传的两个值参数
      

  3.   

    属性的原理是用私有变量隐藏真正放值的位置,不让外部直接使用
    通过属性访问器set\get方法来对这些值进行维护所有基本格式是private 类型 维持变量;
    public 类型 属性名
    {
        get{return 维持变量;}
        set{维持变量=value;}
    }能过构造函数也是向属性维持变量赋被值
      

  4.   


      name 是私有得
      Name 是共有得 极外部可以访问   私有变量隐藏真正放值的位置
      

  5.   

    添加如下主函数你就明白了:class MainEntryPoint
    {
    static void Main()
    {
    myclass myObject=new myclass()

    myObject.Name="myObject";
    //通过调用Name属性中的set方法将myObject的name字段,修改为“myObject”
    //注意,无法将该句改为“myObject.name="myObject"”,因为在Main()中无法访问name字段。 Console.WriteLine(myObject.Name);  //显示"myObject"
    //通过调用Name属性中的get方法将myObject的name字段返回并显示,注意:无法在Main()
    //中直接访问myObject.name,因为name是myClass的私有字段,只能通过其公共属性Name返回name字段 //对于Sex属性与此同理。
    }
    }//属性名与字段名未必相同,它可以使类更安全的访问和设置字段,防止字段被设置成为无意义的值(可通过在属性的Set方
    //法中添加对新值的验证,避免赋与无意义的值