找回密码
 立即注册
搜索
查看: 3376|回复: 33

[软件] [C#]试着学网络上的代码,结果报错了。

[复制链接]
头像被屏蔽
     
发表于 2014-11-17 17:40 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-17 17:42 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 17:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-17 18:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 18:21 | 显示全部楼层
fName没声明啊 如此明显
string fName = ...
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 18:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2014-11-17 19:10 | 显示全部楼层
例子来源?

目测这个有上下文
回复

使用道具 举报

     
发表于 2014-11-17 19:13 来自手机 | 显示全部楼层
using System.IO;
bool isFile...
Rich这行看着似乎可以不要。

LZ别复制粘贴了,自己学学吧…

----发送自 LGE Nexus 4,Android 5.0
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 19:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 19:38 | 显示全部楼层
落后了10多年的人好奇地问一下,这 richTextBox,是不是vs6里面就有的那个unicode文本控件?
回复

使用道具 举报

发表于 2014-11-17 19:38 | 显示全部楼层
vs设计界面就靠拖控件,然后双击控件进去写逻辑。这是最容易上手的办法。然后就可以自己设计一个小项目,项目完成之后,再试着用空白页面换个结构方法复习这个项目,然后就入门了。
回复

使用道具 举报

     
发表于 2014-11-17 20:39 | 显示全部楼层
wowow 发表于 2014-11-17 19:15
自己在设计里面开了个textbox,引用了一下。不报错了,但是不知道这样行不行
                richTextBox ...

第一行肯定不行啊
richTextBox是啥?你又没声明

应该这样吧
TextBox richTextBox = textBox1;

父类应该问题不大,你建的WinForm工程的话
自动会using System.Windows.Forms;
所以WinForm1 : Form这么继承OK
回复

使用道具 举报

     
发表于 2014-11-17 20:47 | 显示全部楼层
本帖最后由 斜阳 于 2014-11-17 23:41 编辑

我也是最近才开始看C#,而且我看的书只讲WPF。这段代码有两个地方搞不懂。
一个是isFileHaveName,哪里来的不清楚,不过前面的fName也没有声明,这两个应该都是哪个类里面的参数继承过来的?一个是File类,是静态类吧,没办法创建实例。
RichTextBox = richTextBox1;也没看懂不过这句我直接无视了。
你一开始应该是没拖控件?这里面有一个button一个richTextBox。不管怎么样,能运行就行了。

我这边怎么想也想不通,所以改成这样了。
if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string fName = openFileDialog.FileName;
                //File fileOpen = new File(fName);
                //isFileHaveName = true;
                StreamReader fileOpen = new StreamReader(fName, System.Text.Encoding.Default);
                this.richTextBox1.Text = fileOpen.ReadToEnd();
                fileOpen.Close();
                //RichTextBox = richTextBox1;
                //richTextBox1.Text = fileOpen.Readfile();
                richTextBox1.AppendText("");
            }


……
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 20:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 21:06 | 显示全部楼层
第一句话是没有引入命名空间 找不到File类型....
开头加上using System.IO; 楼上也说过了..
第二句是字面上是给isFileHaveName赋值 但是这个对象没创建..
楼主是不是先从基础点的程序做起先?
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 21:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 21:21 | 显示全部楼层
先用console控制台程序练手。想绕过基础就直接干活的基本事倍功半
回复

使用道具 举报

发表于 2014-11-17 21:33 来自手机 | 显示全部楼层
我看过的一本动物园的书,从一开始到委托都是用控制台示例的,虽然复杂,但是还是可以慢慢啃下去的。然后到了winform,摆完控件写方法的时候直接来了个nodetree迭代把我打死了。无奈跳过直接看后面的linq和ado

----发送自 Meizu M351,Android 4.4.4
回复

使用道具 举报

     
发表于 2014-11-17 21:57 | 显示全部楼层
wowow 发表于 2014-11-17 21:18
第二句原来是用bool语句搞的……
加上using System.IO之后解决了file的using问题,但是File fileOpen = ne ...

我觉得你是完全还没理解命名空间 变量这些基础概念啊...
基础案例都是控制台是因为控制台程序影响因素少 新手上来照着代码写不容易出错 用来理解概念更方便

上面那个File... 看了下MSDN System.IO中确实是静态类...
你找的这份代码里是不是有自己定义了class file?
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 22:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 22:48 | 显示全部楼层
wowow 发表于 2014-11-17 22:24
我觉得,能够写出“ isFileHaveName = true;”这种句子然后把bool漏掉,应该不是自定义了类,而是没自己跑 ...

我觉得应该还是有上下文的,哪本书或者哪个教程里的示例。
搜了一下这段代码也就在国内传来传去,不过国外网站(http://www.cprogramdevelop.com/421171/)也有,是这样的:
OpenFileDialog openFileDialog = new OpenFileDialog ();
openFileDialog.InitialDirectory = "c: \" ;/ / Note that to use when writing path c: \ instead of C:
openFileDialog.Filter = "text file | * * | C # files | *. cs | All files | *. *";
openFileDialog.RestoreDirectory = true;
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog () == DialogResult.OK)
{
fName = openFileDialog.FileName;
File FileOpen = new File (fname);
isFileHaveName = true;
richTextBox1.Text = fileOpen.ReadFile ();
richTextBox1.AppendText ("");
}
}

除了没有“RichTextBox = richTextBox1;”这一句之外其它基本一样。
顺便我觉得Windows窗体可以不用看了,直接去学WPF,我看的这本2010年的书就是这么说的。
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 23:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 23:20 | 显示全部楼层
wowow 发表于 2014-11-17 23:10
那也要上班才知道了,单位的网和家里不一样,而且单位打开S1一个页面要5-10分钟不等……
================ ...

不清楚。说不定1.0时期是这么写的。
回复

使用道具 举报

     
发表于 2014-11-17 23:20 | 显示全部楼层
看了上面那个链接 file类型是他自己定义的
  1. File.cs
  2. using System;
  3. using System.IO;
  4. using System.Windows.Forms;
  5. using System.Text;
  6. namespace dialog
  7. {
  8. / ** / / / /
  9. / / / Summary description for File.
  10. / / /
  11. public class File
  12. {
  13. string fileName;
  14. public File (string filename)
  15. {
  16. this.fileName = fileName;
  17. }
  18. public string ReadFile ()
  19. {
  20. try
  21. {
  22. StreamReader sr = new StreamReader (fileName, Encoding.Default);
  23. string result = sr.ReadToEnd ();
  24. sr.Close ();
  25. return result;
  26. }
  27. catch (Exception e) {MessageBox.Show (e.Message);}
  28. return null;
  29. }
  30. 省略........
  31. }
复制代码
不过那个网站的代码也挺乱的.....我觉得这些例子没什么看的价值
建议还是找本完整的入门教材跟着学一遍 别找网上的什么代码
至于看啥教材 你可以跟楼上的交流下...
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-17 23:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-17 23:38 | 显示全部楼层
说了正道是先写 console控制台程序
然后再去写基于事件触发的winform程序

简易的入门书随便找个c# 入门就行
还有,c#是c#  .net framework是.net framework 不可混为一谈。
c#只是一门语言
读写文件什么的,是.net framework的事情。
回复

使用道具 举报

发表于 2014-11-18 01:33 | 显示全部楼层
http://msdn.microsoft.com/en-us/library/dd492132.aspx

看啥乱七八糟的玩意儿,直接上MSDN有问题么?
回复

使用道具 举报

     
发表于 2014-11-18 01:47 | 显示全部楼层
我感觉lz是缺乏对c#一些最基本的认识就开始上网抄代码了?
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-18 07:28 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-11-18 08:21 | 显示全部楼层
LZ你这种连走都不会就直接跑是学不好的,最起码把C#书前几章那些基础概念先搞懂吧。namespace,声明,引用这些都搞不清楚的话真的是抄都没法抄。
还有就是先学控制台程序就是正道。
回复

使用道具 举报

发表于 2014-11-18 10:07 | 显示全部楼层
wowow 发表于 2014-11-17 23:28
“别找网上的什么代码”,虽然代码不能看,但是用什么类至少能够知道了。
至于完整的入门教材……手上两本 ...

http://msdn.microsoft.com/en-us/ ... 6%28v=vs.71%29.aspx
简易入门啊,这个先过一遍。之后碰到api再查就是了
回复

使用道具 举报

发表于 2014-11-18 10:25 | 显示全部楼层
如果楼主想要认真地学习编程(无论是基于爱好还是希望将来想要找一份至少比最低级的码农稍微好一点的工作)
请不要从复制粘贴和拖控件开始。
拖控件开发非常方便,但只拖控件永远也学不会任何东西。无论C#还是.NET平台水都非常深,而拖控件式WinForm开发只是冰山的一角(而且还是不怎么重要的一角)。

楼上已经有不少好的建议了。另外要说的是MSDN的.NET部分几乎全都有中文版,一定要看文档,遇到不懂就看文档,有疑问首先看文档,在网上提问之前一定要先自己看过文档(最好在提问的时候说明自己已经看过了哪些文档)。如果说英文文档看不懂还有理由,不看MSDN是没有任何理由的
另外MSDN上几乎都有完整示例。比如打开文件的例子,可以参考MSDN上System.IO.FileStream类的文档:http://msdn.microsoft.com/zh-cn/library/system.io.filestream.aspx
还有MSDN上C#和VB的官方详细入门教程:http://msdn.microsoft.com/zh-cn/library/dd492171.aspx
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-18 12:15 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

头像被屏蔽
     
 楼主| 发表于 2014-11-18 19:30 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-29 06:42 , Processed in 0.248349 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表