我现在做一个程序,比如我要让用户来输入一个属性值(int型),然后程序判断此值的大小范围,然后根据大小将 "大"或"小"返回。举例如下:class Rectangle
{
    private int length;
    public string Length
    {
         get 
         {
             if (length>10)
                 return "大";
             else
                 return "小";
         }
         set 
         {
             length = value;
         }
    }
}

这样做显然是有错误的。我的意思就是get的时候返回string类型的“大”或“小”,设置它的值时给它赋一个int型的数。
属性能这样做吗,有其他方法可以达到我的目的吗?请有经验的高手指导一下!!

解决方案 »

  1.   

    static void Main(string[] args)
            {
                           
                student s = new student();
                s.Length = 20;
                if (s.Length>10)
                {
                    s.Name = "大";
                }
                else
                {
                    s.Name = "小";
                }
                s.aa(); 
            }    }
        class student
        {
            
            private int length;        public int Length
            {
                get { return length; }
                set
                {
                    length = value;
                }
            }
            private string name;        public string Name
            {
                get { return name; }
                set { name = value; }
            }
            public void aa() {
                Console.WriteLine("我有" + this.Length + "我是" + this.Name); 
            }
            
        }
      

  2.   

    private int length; 
        public object Length 
        { 
            get 
            { 
                if (length>10) 
                    return "大"; 
                else 
                    return "小"; 
            } 
            set 
            { 
                length = value as int; 
            } 
        } 
    不过这样设计不好!
      

  3.   

    private int length; 
        public object Length 
        { 
            get 
            { 
                if (length>10) 
                    return "大"; 
                else 
                    return "小"; 
            } 
            set 
            { 
                length = (int)value; 
            } 
        } 
      

  4.   


    最好这样写private int length;        public int Length
            {
                get { return length; }
                set
                {
                    length = value;
                }
            }
            private string name;        public string Name
            {
                get { return length > 10 ? "大" :"小"; }
            }1 取name的时候可以适时地判断length大小,返回正确的值
    2 name是根据length得到的,不需要有set;
      

  5.   

    你是不是没转过弯来,这不是函数么string SetLength(int value)
    {
        if (length>10) 
          return "大"; 
        else 
          return "小"; 
    }
      

  6.   

    if (length>10) 
      if (this.txtDuration.Text.Trim().Length > 0)这样才对吧?!
      

  7.   

    private int length;        public int Length
            {
                get { return length; }
                set
                {
                    length = value;
                }
            }
            private string name;        public string Name
            {
                get { return length > 10 ? "大" :"小"; }
            }
    分成2个属性,正解
      

  8.   

    namespace ConsoleApplication1
    {
        class Program
        {
            private int le;
            private string result;
            public void check(int le)
            {
                if (le > 10)
                {
                    this.result = "big";
                }
                else { this.result = "small"; }
            }
            public int lle
            {
                get {
                    
                    return le; }
                set { this.check(value); le = value; }
            }
            static void Main(string[] args)
            {
                Program p = new Program();
                p.lle = 11;
                Console.WriteLine(p.result);
               
            }
        }
    }
      

  9.   

    如下
    namespace ConsoleApplication1 

        class Program 
        { 
            private int length; 
            private string result; 
            public void check(int length) 
            { 
                if (length > 10) 
                { 
                    this.result = "大"; 
                } 
                else { this.result = "小"; } 
            } 
            public int P_length
            { 
                get { 
                    
                    return length; } 
                set { this.check(value); length= value; } 
            } 
            static void Main(string[] args) 
            { 
                Program p = new Program(); 
                p.P_length= 11; 
                Console.WriteLine(p.result); 
              
            } 
        } 

     
      

  10.   


    private int len; 
    public int Len 
     { 
     get { return len; } 
     set { len = value;} 
    } private string name; 
    public string Name 

    get { return len > 10 ? "大" :"小"; } 
    } 分开属性
      

  11.   

    你让用户输入的应该是length的值而不是结果.而显示出来的是result,这个result是不能set的
    class Rectangle 

        public int length; 
        public string result 
        { 
            get 
            { 
                if (length>10) 
                    return "大"; 
                else 
                    return "小"; 
            } 
        } 

    你的
    set 

       length = value; 
    }
    这显然是不对的,length是int,而value是string.
    Rectangle r = new Rectangle();
    r.Length = 10;//这当然会出错啦。因为r.Length是string类型你应该理解下get,set的工作原理