A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高宜 中级黑马   /  2012-6-6 19:52  /  2337 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.   public override string ToString()
  2.         {
  3.             return String.Format("{0}{1}", firstname, lastname);
  4.         }
复制代码
重载string.Tostring方法为什么要写成上述情况而不是public override string.Tostring(){}

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

6 个回复

倒序浏览
public override string.Tostring(){} 这种写法是编译不通过的,这个就是C#的语法规则

string 是返回值 override 这个是重写要加的关键字,必须加载作用域修饰符和返回类型值之间, 而且重写的方法必须是虚方法

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
方法重写的形式和定义一个方法唯一的区别在于加了一个override关键字,如楼上所说,这是C#语法要求。需要注意的是,只有声明为virtual的方法才能重写。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
要重载的,要基类要有虚方法,派生类才可以override,至于为什么不可以那样写,本来Csharp就没有这种写法,string 只是一种类型,是方法执行要返回值是string的类型,
  返回类型可以有int bool  double  long 等

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
string.ToString(){}这样定义方法的语法不对,不能通过编译;
重写方法,就必须按照方法的定义去写;
string.ToString()是调用string下面的一个方法了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
朱亮辉 发表于 2012-6-6 22:21
public override string.Tostring(){} 这种写法是编译不通过的,这个就是C#的语法规则

string 是返回值 ov ...

什么是虚方法
回复 使用道具 举报
public override string.Tostring(){}  肯定编译不过,没有这样的方法名string.Tostring,还有方法要求返回值是string

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马