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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭正续 中级黑马   /  2012-7-30 17:10  /  2810 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在winform入门视频中,在文本框里输入一个名字Tom,然后显示“Tom你好”。老师用的是
   string.Format("{0}你好",name);
这句话是什么意思?我用console.WriteLine();不行吗?
求解释。。

评分

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

查看全部评分

10 个回复

倒序浏览
你的这句话“ string.Format("{0}你好",name);”根本就不能输出,就是用console.WriteLine();,我在视频上看的都是用console。writeline()输出,没见用你那种方式输出的

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 张腾达 于 2012-7-30 17:48 编辑
laluckystar 发表于 2012-7-30 17:37
你的这句话“ string.Format("{0}你好",name);”根本就不能输出,就是用console.WriteLine();,我在视频上 ...

哥们,他这是没把代码发完整,这句是在格式化字符串,把变量name的值代入到{0}的位置。后边还有输出代码。在button的Click事件里写的
  1. this.Text=string.Format("{0}",name);
复制代码
点击后窗体标题会变成谁谁你好。

另外 既然到了winform的阶段,建议不要用Console.WirteLine()了,在Windows窗体应用程序中,如果用Console.WirteLine()来测试啊,调错什么的,需要Ctrl+W,Ctrl+O把输出视图打开,或者点视图→输出,而且不直观。

不如MessageBox.Show()来的方便

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 陈汉维 于 2012-7-30 17:56 编辑

苏坤的视频里面就说Console.WriteLine底层就是调用string.Format来实现单元格替换啊。
可是 动手编译下发现竟然真的不能用。

Console.WriteLine只在控制台中看到过,其他地方貌似没见到过。楼主自己动手试下就知道了。

评分

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

查看全部评分

回复 使用道具 举报
Console.WriteLine("");是向控制台应用程序打印数据的,
老师当时用的MessageBox.Show("");弹出对话框的,
使用string.Format("{0}你好",name);只是为了实现使用占位符效果,

评分

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

查看全部评分

回复 使用道具 举报
陈汉维 发表于 2012-7-30 17:44
苏坤的视频里面就说Console.WriteLine底层就是调用string.Format来实现单元格替换啊。
可是 动手编译下发现 ...

  1. Console.WriteLine("{0}",name);
复制代码
这样写是可以用的

不过它没有返回值,你把它当作string赋值给Text属性,当然会报错。
不用占位符的话可以直接字符串拼接
  1. this.Text=name+"你好";
复制代码

评分

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

查看全部评分

回复 使用道具 举报
张腾达 发表于 2012-7-30 18:09
这样写是可以用的

不过它没有返回值,你把它当作string赋值给Text属性,当然会报错。

谢谢纠错。那如果想在窗体上输出,用Console.WriteLine就不行了啊。大部分都是用字符串拼接的啊,不是吗?
有没有Console.WriteLine在窗体上输出的例子。

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 张腾达 于 2012-7-30 18:34 编辑
陈汉维 发表于 2012-7-30 18:26
谢谢纠错。那如果想在窗体上输出,用Console.WriteLine就不行了啊。大部分都是用字符串拼接的啊,不是吗 ...

C#真不会。不过几年前心气高,各种语言各种学,,,,忘了是VB6.0还是易语言了,隐约记得可以直接在窗体输出。。好多年了,:L岁月这把杀那啥的刀,··把我干掉了

评分

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

查看全部评分

回复 使用道具 举报
王峰 中级黑马 2012-7-30 19:50:07
9#
把它当作string赋值给Text属性,当然会报错。用string.Format("{0}你好",name);只是为了实现使用占位符效果,

评分

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

查看全部评分

回复 使用道具 举报
consolel.writeline 输出语句
string.Format("{0}你好",name);   {0} 占位符,即为:name。

评分

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

查看全部评分

回复 使用道具 举报
在WinForm编程中,好像不能用Console.WriteLine()这种形式,因为WinForm编程时没有引用Console这个类,所以最好用string.Format()这种方式
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马