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   Rxr 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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C# 重写 ToString 方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication27 { class Program { static void Main(s
重写toString()方法
学习Java的人都知道,Java所有类都是object的子类。所以,所有的Java对象都可以调用object类提供的方法。其中,toString()就是其中一个。下面讲解一下为什么会有重写toString()方法一说。   首先,我们先来创建一个Persion类,它只简单的包含 firstname 和 lastname,当然,加上它的setter 和 getter 法。放在com.be
实体类自动重写toString(),equals()和hashCode()方法
编写web项目时会遇到大量的实体类,那么多的实体类都要重写toS
关于重写toString方法
关于重写toString
重写toString方法-日志
relectionToString()将利用Java Refelection机制显示类实例的所有属性的信息.
Enum的toString方法
定义一个枚举型的变量(Enum),如:Public Enum Status        Initial = 0        Process = 1        Finished = 2End Enum如果使用Dim strValue As String = Status.Initial.toString()得到的strValue的值为“Initial”,从这个方面来说上面这句话与
重写toString方法
当你要读取关于对象的一些有用细节时,可以在对象上调用toString()。如,当把一个对象引用传递给System.out.println();时,该对象的toString()方法被调用。Java中所有的类都继承自Object父类,所以,我们在类中只要重写一下toString()方法就可以显示出我们想要的信息了。看下面的例子:public class OverrideToString {    pu
重写 toString 方法
1、当不重写toString方法的时候,调用对象的时候是调用了tostring的方法,输出类名 Books books = new Books("23", "thinking ", "123"); System.out.println(books); 结果输出:cn.ouc.xml.Books@61de33 2、重写toString 方法的时候,会调用重写的方法
慎用Enum的ToString
慎用Enum的ToString Enum.ToString() 由 .NET Compact Framework 支持。  将此实例的值转换为其等效的字符串表示。  我们常在开发中常用到自定义枚举类型,在某些情况下会用到ToString方法使开发变的便捷 举例: enum MyEnum {     Red,     Blue,     Green } =======================
C#何时需要重写ToString()方法
<br />   在项目中有时会看到一个类中重写ToString()方法,刚开始不理解干嘛要重写这个方法,今天看《改善C#程序的50种方法》这本书时正好看到了原则5:始终提供ToString()方法。不过看这本书时很不好理解,于是google了一下,现在解释一下吧。原来有时你要自定义格式化输出的时候就得重写ToString()方法。<br />   一般类型,都是继承自System.Object类,默认情况下,object类的ToString方法会返回当前类的类型的字符串表达形式。但也有例外!!<br />