2 zllxp1314 zllxp1314 于 2016.01.17 08:53 提问

C#怎样在重写ToString()方法中一次返回多个值,如下

public string clientCode { get; set; }
public string clientName { get; set; }
public string abbreviation { get; set; }

public override string ToString()
{
return clientCode,clientName,contacts;
}
这是一个类中,以上三个都要重写,有没有一次都重写的方法!本人新手,谢谢各位指导
我其实是绑定的是combobox控件中显示,每个都显示在不同的combobox控件中,这样就需要在同一个类中重写3个属性的tostring,但是这样不行,我开始是用笨办法建立三个相同的内容的类,分别重写,但是属性一多就不行了;

5个回答

caozhy
caozhy   Ds   Rxr 2016.01.17 09:28
已采纳
 你还可以这么做:
class A
{
public string clientCode { get; set; }
public string clientName { get; set; }
public string contacts { get; set; }
public Func<A, string> sel = x => string.Format("{0},{1},{2}", x.clientCode,x.clientName,x.contacts);
public override string ToString()
{
return sel(this);
}
}

调用的时候,如果你要改变,这么写
A a = new A();
a.sel = x => x.clientCode;

zllxp1314
zllxp1314 可以了,非常感谢!
接近 2 年之前 回复
zllxp1314
zllxp1314 回复caozhy: 好的,谢谢啦
接近 2 年之前 回复
caozhy
caozhy 回复zllxp1314: lambda
接近 2 年之前 回复
zllxp1314
zllxp1314 public Func<A, string> sel = x => string.Format("{0},{1},{2}", x.clientCode,x.clientName,x.contacts);这个不懂,麻烦解释下好吗?谢谢
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.17 09:24
 return string.Format("{0},{1},{2}", clientCode,clientName,contacts);
zllxp1314
zllxp1314 回复caozhy: 我的是Dev的comboboxEdit没有这两个属性。。。。。
接近 2 年之前 回复
caozhy
caozhy 回复zllxp1314: combobox有displaymember和valuemember,设置为你需要的属性名就可以。
接近 2 年之前 回复
zllxp1314
zllxp1314 要报错!,我其实是绑定的是combobox控件中显示,每个都显示在不同的combobox控件中,这样就需要在同一个类中重写3个属性的tostring,但是这样不行,我开始是用笨办法建立两个类,分别重写,但是属性一多就不行了;
接近 2 年之前 回复
enpterexpress
enpterexpress   2016.01.17 12:12

都是string类型的属性,直接调用类的属性就行了呀

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.17 09:11

toString方法返回值只有一个就是String 类型,而且这个方法功能就是显示对象的属性信息的,可以把三个属性加起来拼接成一个显示当前对象信息的字符串。

zllxp1314
zllxp1314 就是每个combobox绑定对应的一个属性,但属性是在一个类中,都需要重写
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you 回复zllxp1314: 你的每个combobox绑定对应的一个属性不可以吗?
接近 2 年之前 回复
zllxp1314
zllxp1314 用string.Format吗?我其实是绑定的是combobox控件中显示,每个都显示在不同的combobox控件中,这样就需要在同一个类中重写3个属性的tostring,但是这样不行,我开始是用笨办法建立两个类,分别重写,但是属性一多就不行了
接近 2 年之前 回复
Trent1985
Trent1985   2016.01.17 09:19

你可以返回一个string[]

zllxp1314
zllxp1314 回复zllxp1314: 我试过了,不行
接近 2 年之前 回复
zllxp1314
zllxp1314 我是过来,这样达不到重写tostring
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!