如何重写 System.String的ToString方法

lh8287 2005-08-26 10:25:23
现在情况是这样的
public class my
{
public string fun1()
{
string result;
//.....
return result;
}
}

我调用的时候这样:

my aa = new my();
textBox1.Text = aa.fun1();

由于fun1方法返回的是Unicode编码的字符串,其中可能包含很多怪异的字符,所以我想重写string的ToString()方法,使之能返回一个特定的结果。

例如:
my aa = new my();
textBox1.Text = aa.fun1().ToString();

请问这个该如何写?我真是被搞晕了。


后来想想,我建立一个MyString类,继承自System.String
上面函数fun1的返回结果是MyString行的,这样只要在MyString类里面有ToString()方法,应该就能实现我的要求了。

但是MyString类该怎么写呢。

望各位给个框框。谢谢了
...全文
210 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
TechEye 2005-08-26
  • 打赏
  • 举报
回复

public class A
{

public new string ToString
{
get{}
set{}
}

}
psn 2005-08-26
  • 打赏
  • 举报
回复
编写类实现IFormatProvider,自定义处理。
String.Format(IFormatProvider provider,string format,params object[] args)可以帮助你
hzw66 2005-08-26
  • 打赏
  • 举报
回复
我看写个静态方法算了:
public class my
{
public static string MyFormat(string source)
{
//...
return string.Format(source,1,2));//格式化你想要的
}
}
用时这样:
my aa = new my();
textBox1.Text = My.MyFormat(aa.fun1());
manc 2005-08-26
  • 打赏
  • 举报
回复
我想到一招
public class b
{
public b()
{
fun1();
}

private void fun1()
{

}

public override string ToString()
{}
}

public class a
{
public b en;
}

public class c
{
public a aa = new a();
t1.text = aa.en().tostring();
}
3tzjq 2005-08-26
  • 打赏
  • 举报
回复
public class my
{
public string fun1()
{
string result;
//.....
return result;
}

public override string ToString()只能重写my.ToString
{
return string.Format(this.fun1(),1,2));//格式化fun1的常规值(假如需要格式化)
}
}

my aa = new my();
textBox1.Text = aa.ToString();

方法2:写个重载fun1函数:
public string fun1(bool IsFormat)
{
string result;
//.....
if(IsFormat) return string.Format(result,1,2);
return result;
}
xuanyuanfeixue 2005-08-26
  • 打赏
  • 举报
回复
是不能继承
我记得以前见过对toString()重载的
但忘了
yanlixin4csdn 2005-08-26
  • 打赏
  • 举报
回复
public class Class2
{
public Class2()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public override string ToString()
{
return "Class2";

}
}
JasonHeung 2005-08-26
  • 打赏
  • 举报
回复
pupo(泡泡) ( ) 信誉:105 2005-08-26 14:38:00 得分: 0


System.String类是不能被继承的,
public string fun1()
{
string result;
//.....
return result;
}

你可以在返回result之前对result做相应处理就是



pupo 2005-08-26
  • 打赏
  • 举报
回复
System.String类是不能被继承的,
public string fun1()
{
string result;
//.....
return result;
}

你可以在返回result之前对result做相应处理就是
manc 2005-08-26
  • 打赏
  • 举报
回复
我暂时也不知道。不过我也遇到了相似的问题,
顶!!!

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧