我现在做一个程序,比如我要让用户来输入一个属性值(int型),然后程序判断此值的大小范围,然后根据大小将 "大"或"小"返回。举例如下:class Rectangle
{
private int length;
public string Length
{
get
{
if (length>10)
return "大";
else
return "小";
}
set
{
length = value;
}
}
}
这样做显然是有错误的。我的意思就是get的时候返回string类型的“大”或“小”,设置它的值时给它赋一个int型的数。
属性能这样做吗,有其他方法可以达到我的目的吗?请有经验的高手指导一下!!
{
private int length;
public string Length
{
get
{
if (length>10)
return "大";
else
return "小";
}
set
{
length = value;
}
}
}
这样做显然是有错误的。我的意思就是get的时候返回string类型的“大”或“小”,设置它的值时给它赋一个int型的数。
属性能这样做吗,有其他方法可以达到我的目的吗?请有经验的高手指导一下!!
{
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);
}
}
public object Length
{
get
{
if (length>10)
return "大";
else
return "小";
}
set
{
length = value as int;
}
}
不过这样设计不好!
public object Length
{
get
{
if (length>10)
return "大";
else
return "小";
}
set
{
length = (int)value;
}
}
最好这样写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;
{
if (length>10)
return "大";
else
return "小";
}
if (this.txtDuration.Text.Trim().Length > 0)这样才对吧?!
{
get { return length; }
set
{
length = value;
}
}
private string name; public string Name
{
get { return length > 10 ? "大" :"小"; }
}
分成2个属性,正解
{
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);
}
}
}
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);
}
}
}
private int len;
public int Len
{
get { return len; }
set { len = value;}
} private string name;
public string Name
{
get { return len > 10 ? "大" :"小"; }
} 分开属性
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的工作原理