回 帖 发 新 帖 刷新版面

主题:[FAQ]常见问题总结 发帖者必看(08.10.01 updated)

[center][color=0000FF]本贴会不断丰富,需要发贴求助的网友在发贴前先来这里瞅一眼。
如果有哪位朋友有什么好的想法或者意见,可以给我发短消息。[/color][/center]

[b]注:[/b]
[i]本文只起到常见问题索引的作用,如果没有找到您所需要的信息,还可以通过[url=http://bbs.pfan.cn/search.asp]搜索本论坛[/url]、baidu、查找MSDN、在本区发问题帖等方式为您解决问题。[/i]


[b][基本部署问题][/b]

Q.
为什么我写的程序在没有装VS的机子上运行不了?
A.
.NET程序运行前需要安装.NET Framework。建议针对哪个.NET平台编译的程序就运行在哪个版本的Framework之上,避免出现兼容性问题(一般来说向后兼容)。

Q.
怎样把dotnetfx.exe一起打包到安装程序中?
A.
首先,当然要把dotnetfx.exe放到安装程序项目里面,让最终程序包含dotnetfx.exe。
然后,需要在安装程序中判断是否已经安装.net并根据需要调用dotnetfx.exe;至于如何实现这一步,可以参见下面的链接
L.
[url]http://msdn.microsoft.com/library/CHS/cpguide/html/cpconSetupexeBootstrapperSampleOperations.asp[/url]
[url]http://msdn2.microsoft.com/zh-cn/library/aa480198.aspx[/url]

Q.
C#能开发什么程序?
A.
C#只是一门语言而已,它的应用领域受.NET Framework功能限制。
所以通俗的说,.net能实现什么功能,C#就能开发这样的程序。
.net有什么功能?难为人么,去微软网站瞅瞅~~


[b][语法问题][/b]

Q.
C# 新版本都带来了什么?
L.
C# 2.0 特性介绍
[url]http://bbs.pfan.cn/post-159146.html[/url]
C# 3.0 特性预览
[url]http://bbs.pfan.cn/post-167848.html[/url]

Q.
虚方法继承调用问题
L.
关于虚方法和非虚方法混合调用的问题
[url]http://bbs.pfan.cn/post-155689.html[/url]
虚拟方法的一些问题,请高手们帮忙看一下
[url]http://bbs.pfan.cn/post-159612.html[/url]
C#.net中的重写和覆盖有什么区别吗?
[url]http://bbs.pfan.cn/post-145524.html[/url]

Q.
接口有什么用?
L.
[讨论]接口到底有什么用?
[url]http://bbs.pfan.cn/post-150228.html[/url]
[讨论]再议C#中接口的作用
[url]http://bbs.pfan.cn/post-158744.html[/url]

Q.
如何理解委托?
L.
如何理解C#中的委托啊
[url]http://bbs.pfan.cn/post-231834.html[/url]
C#中的事件委托是怎么回事?
[url]http://bbs.pfan.cn/post-279652.html[/url]

Q.
事件和委托的区别?
L.
事件与委托的问题???
[url]http://bbs.pfan.cn/post-139509.html[/url]

Q.
如何进行类型转换?
A.
在系统类型中一般都会有Parse方法,比如int.Parse,即Int32.Parse。此外,还可以使用Convert.ToXXX系列方法。用过VB的朋友如果想用Val等函数,那么可以先引用Microsoft.VisualBasic.dll,然后通过Convertion.Val等方法调用这些函数;或者自己写个函数来实现。
对于普通类的转换,可以用强制转换或者as操作符转换(如果没有印象的赶快看书吧)。
系统类型的TryParse方法(.net 2.0+)还可以帮助捕获转换异常,并通过返回值告知是否转换成功。
数组类型的转换需要注意,int[]与long[]不可以直接使用类似long[] a = (long[])b;这样进行转换,如果没有特殊办法,只能通过循环遍历对数组元素进行对位转换。

Q.
如何学习LINQ?
L.
[讨论]如何学习LINQ?
[url]http://bbs.pfan.cn/post-283259.html[/url]


[b][算法问题][/b]

Q.
怎样实现快速排序?
L.
[原创]C#中的快速排序算法
[url]http://bbs.pfan.cn/post-82538.html[/url]

Q.
怎样使用MD5加密?
L.
c#中MD5算法
[url]http://bbs.pfan.cn/post-282845.html[/url]


[b][IO问题][/b]

Q.
为什么打开文本文件是乱码?
A.
请注意在读取文件时应当使用储存该文件所用的编码。
更多信息参见System.Text.Encoding


[b][进程、程序调用问题][/b]

Q.
如何启动外部程序?
A.
System.Diagnostics.Process.Start(...);就是最基本的调用方法。关于比较高级的方法,可以参考MSDN中对Process类的详尽说明。

Q.
如何获取程序自身执行的路径?
A.
AppDomain.CurrentDomain.BaseDirectory或者Application.StartupPath。
不过要注意末尾是否有斜杠。
Application.ExecutablePath属性包含可执行程序本身的文件名。
Application.XXX只有在WinForms项目中才能使用。
另外,不要用Environment.CurrentDirectory来获取,这个属性是可以修改的。

Q.
怎样调用CPL文件?
A.
举例:
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
info.FileName = "RUNDLL32.EXE";
info.Arguments = "shell32.dll,Control_RunDLL desk.cpl,,3";
System.Diagnostics.Process.Start(info);


[b][线程问题][/b]

Q.
为什么执行大量操作界面会卡死?
A.
UI(界面线程)用于维护界面保持响应,如果在UI线程中出现耗时繁重任务,自然导致该线程无暇响应用户操作。
解决方法:
1、如果是采用VB6的模式,那么在繁重的代码段中添加Application.DoEvents();即可。
2、不过,强烈建议不要在UI线程中进行大量的非界面操作,进行这类操作时最好新建一个线程,需要操纵界面元素的时候再利用委托的Invoke/BeginInvoke回调。

Q.
如何暂停线程?
A.
Thread.Sleep(...)或Thread实例.Join(...)甚至Thread实例.Suspend()(不推荐)等等。

Q.
为什么跨线程访问出错?
L.
关于Timer的使用问题,有些事情需要请教?
[url]http://bbs.pfan.cn/post-167605.html[/url]


[b][数据库问题][/b]

Q.
常见连接字符串
L.
[url]http://www.connectionstrings.com/[/url]

Q.
如何连接MySQL数据库?
A.
1、通过OleDb或者Odbc,具体字符串参见上一问题
2、通过第三方组件,比如MySQL.com提供的Connector/NET

Q.
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
A.
开始->所有程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine节点->选择“远程连接”->选择“同时使用 TCP/IP 和 named pipes”->确定->重启数据库服务

Q.
如何读写Image字段?
L.
[原创]C# 读写数据库Image字段
[url]http://bbs.pfan.cn/post-275200.html[/url]


[b][窗体/控件问题][/b]

Q.
如何在两个窗体中共享、传递数据?
A.
用中间过程,变量、属性、构造函数等。
L.
[原创].NET 窗体间传送数据方法谈 —— 迟来的补遗
[url]http://bbs.pfan.cn/post-230702.html[/url]
[讨论]请教一个传参数的问题~~急
[url]http://bbs.pfan.cn/post-159460.html[/url]
求助,如何判定一个窗体是否打开?
[url]http://bbs.pfan.cn/post-161110.html[/url]

Q.
程序入口与初始线程作用与特点?
L.
form1关闭问题
[url]http://bbs.pfan.cn/post-283183.html[/url]

Q.
如何禁用Alt+F4组合键?
L.
[讨论]高级WindosForm窗体编程
[url]http://bbs.pfan.cn/post-231792.html[/url]

Q.
为什么VS2005里面找不到MainMenu了?
A.
从.net2.0起,MenuStrip替代MainMenu,ToolStrip替代ToolBar等等。出于兼容性考虑,MainMenu等并没有被废止,仍可以继续使用,但VS2005的工具箱里默认不包含这些控件,可以手工添加。

Q.
怎样更改RichTextBox文本的样式?
L.
对指定位置的字符改变显示颜色
[url]http://bbs.pfan.cn/post-277310.html[/url]


[b][Console问题][/b]

Q.
为什么程序结果会一闪而过?
A.
程序终止之后自然会退出,如果想让Console停留,那么想法停住它吧。
L.
显示结果
[url]http://bbs.pfan.cn/post-160620.html[/url]


[b][GDI+问题][/b]

/* 规划中 */


[b][Windows服务问题][/b]

Q.
如何实现简单的Windows服务?
L.
[讨论]Windows服务初探
[url]http://bbs.pfan.cn/post-74051.html[/url]


[b][Office Interop问题][/b]

Q.
怎样调用Office组件功能?
A.
利用P/Invoke技术可以让.NET程序调用Office的COM组件。自定义安装Office时每个组件(Word/Excel/Access等)下都有“.NET可编程支持”选项,确保这个功能安装之后就可以使用相应组件的.NET调用了。以Word为例,使用之前添加程序集引用“Microsoft.Office.Interop.Word”,然后就可以使用Microsoft.Office.Interop.Word命名空间了。具体的使用方法参见MSDN。
L.
[url]http://msdn.microsoft.com/zh-cn/library/aa159923(office.11).aspx[/url]


[b][打印/报表问题][/b]

Q.
如何给水晶报表传值?
L.
[原创]给水晶报表传值的两种方式
[url]http://bbs.pfan.cn/post-274769.html[/url]

Q.
如何控制分组跨页组名的显示?
L.
關於水晶報表分組的問題
[url]http://bbs.pfan.cn/post-276024.html[/url]


[b][高级应用][/b]

Q.
如何通过类名动态创建对象?
L.
[讨论]C# 通过类名动态创建对象
[url]http://bbs.pfan.cn/post-273830.html[/url]

Q.
怎样使用P/Invoke?
L.
C#编程中如何调用API函数
[url]http://bbs.pfan.cn/post-281254.html[/url]


[b][Silverlight问题][/b]

Q.
什么是Silverlight?
A.
Silverlight是微软主持的跨浏览器、跨平台且与.NET紧密联系的RIA组件,类似于Flash的交互技术,但具有更高的JavaScript及后台服务器端交互支持。

Q.
从哪可以找到入门Silverlight范例?
L.
微软 Silverlight Learn 专区
[url]http://silverlight.net/Learn/[/url]

Q.
怎样利用Silverlight将.net与javascript事件绑定?
L.
[原创]Silverlight中.Net与Javascript事件绑定
[url]http://bbs.pfan.cn/post-267606.html[/url]

Q.
怎样生成动态Silverlight控件?
L.
[原创]Silverlight动态控件
[url]http://bbs.pfan.cn/post-267607.html[/url]


[b][文档问题][/b]

Q.
如何自动生成代码文档?
A.
推荐用GhostDoc和NDoc,不过GhostDoc似乎和非英文IDE过不去。

Q.
.NET 2.0下咋找不到NDoc?
A.
目前在官方网站上尚未出现NDoc for .NET 2.0的信息,不过我在SharpDevelop 2的安装目录下提取出了NDoc 1.3.1 for .NET 2.0,可以参考一下。


[b][范例][/b]

[原创]C#编写的windows计算器----源代码
[url]http://bbs.pfan.cn/post-75781.html[/url]

[转帖]在C#中运用API函数编写多功能关机程序
[url]http://bbs.pfan.cn/post-73329.html[/url]

C#编程技巧集之--用Visual C#做托盘程序(收藏)
[url]http://bbs.pfan.cn/post-37680.html[/url]

C#编程技巧集之--让窗体飘动起来--C#中Timer组件用法(收藏)
[url]http://bbs.pfan.cn/post-37676.html[/url]

C#编程技巧集之--用C#制作字幕显示屏幕保护(收藏)
[url]http://bbs.pfan.cn/post-37672.html[/url]

C#编程技巧集之--用制作C#作屏幕捕获程序(收藏)
[url]http://bbs.pfan.cn/post-37673.html[/url]

[原创]发布一个自己做的银英游戏
[url]http://bbs.pfan.cn/post-237692.html[/url]

小弟自己做的俄罗斯方块(含源码)
[url]http://bbs.pfan.cn/post-238301.html[/url]

C#桌面宠物秀(C#源码)
[url]http://bbs.pfan.cn/post-250394.html[/url]

[转帖]C#论坛全部源码!
[url]http://bbs.pfan.cn/post-265133.html[/url]
C#论坛全部源码2
[url]http://bbs.pfan.cn/post-265184.html[/url]

[转帖]用Visual C#制作新闻阅读器
[url]http://bbs.pfan.cn/post-265215.html[/url]

获取硬盘序列号
[url]http://bbs.pfan.cn/post-278885.html[/url]


[b][小技巧整理][/b]

[原创]C#小技巧
[url]http://bbs.pfan.cn/post-84607.html[/url]

微软.Net程序设计FAQ
[url]http://bbs.pfan.cn/post-17944.html[/url]

C#编码习惯之66条
[url]http://bbs.pfan.cn/post-261217.html[/url]

回复列表 (共11个回复)

11 楼

Mark

我来回复

您尚未登录,请登录后再回复。点此登录或注册