C#中怎么知道都有哪些方法可用,像Console.WriteLine,在我不知道Console有WriteLine方法时怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中怎么知道都有哪些方法可用,像Console.WriteLine,在我不知道Console有WriteLine方法时怎么办?相关的知识,希望对你有一定的参考价值。

请懂的详细介绍下,因为才接触C#,之前一直用C。
比如一般的C语言写的代码,一般都有库和头文件,只要把头文件给我,我就知道这个库有哪些函数可以使用,参数什么的是什么类型都知道。
而C#的库是不是dll?有没有一个类似于头文件的东东?
有人可能会说查“MSDN”,但如果是第三方给的库,而不是微软的怎么办?
谢谢!

除了MSDN以外一般还真没太好的办法,也有头文件,不过C#叫命名空间(nameSpace)
跟C差不多,引入命名空间以后就可以使用这个命名空间里面的类和函数,这点跟C的库很像,不过封装更厉害一点而已。
如果你知道你要用的类在哪个命名空间的话其实还是好办的,因为在VS环境下,只要你引入了命名空间,随便瞧一个字母就能给出你能创建的所有类,枚举,结构的提示,方向键选中相关的内容就有描述,包括作用,参数名称,类型,返回值等信息。
假如你想知道函数的的参数和返回值还有个办法就是在函数的括号中按下组合键(ctrl+shift+space)也能调出函数的重载列表,通过方向键上下就可以看每个重载的参数和返回值了。
假设你完全不知道你要实现的功能来自哪个命名空间的哪个类,估计你就只能借助MSDN和度娘了。
最后如果你用的是第三方的东西,只能借助第三方的文档并且寄希望于第三方的开发工程师有个良好的文档注释习惯了。不得已只能问度娘了,不过比较冷僻的第三方东西度娘一般不知道。追问

谢谢!你回答的很认真
还有些问题,using引用的命名空间是引用的一个dll文件吗?dll的文件名就是using语句后面的名字?还是说有另外一个文件是和dll配套的?那using的文件是从哪里查找呢,当前目录还是某个固定目录?
如果能回答,非常感谢,我会尽力增加悬赏,谢谢!

追答

是的,using引用的实际上就是一个类库,也就是你说的dll文件,在VS中可以自己创建类库项目,编辑完成后,在VS中生成即可生成dll文件,用来引用。
你问你应该是如何找到引用,你可以这样操作,在解决方案管理器里面,选中项目,点击鼠标右键,选择添加引用/外部引用,来查找需要添加的引用,前面我说的自己写的类库项目生成的dll引用就是用添加外部引用的方式,还有你下载的第三方类库也是外部引用,VS内置的引用还是很有用的,有很多常用操作就需要添加引用完成,比如对Excel的操作等。就需要通过添加引用的方式引入类库,这类系统自带的引用你无需找到dll文件本身,VS会帮你载入,你选择了添加,就可以在代码中using命名空间了。顺便说一句,添加引用的时候由于很多,你可以通过键盘敲击首字母的方式来快速定位。至于是.NET引用还是COM引用,就看你所需的类库所属范围了。
当然了,如果你一定要找到这个类库,也不是很复杂,查找目录就能找到了,因为以前没过多的纠结这个目录,所以没仔细的查找过具体的目录名称和结构。毕竟自己写的和下载的第三方的,都知道路径,系统的我也不纠结路径,有用的就行嘿嘿。希望能帮到你。

参考技术A C#没有头文件,和头文件类似的功能的叫“命名空间”,也就是格式为:
using 命名空间;
然后命名空间里面的函数,你就可以直接引用了;追问

那我怎么知道命名空间里有哪些函数呢?函数的参数那些从何而知?

追答

除非这些函数是开源的,否则你很难知道这些命名空间里面有哪些函数;这些东西都是靠平时积累的,同样在C#中经常遇到的情况刚好是相反的情况,就是你知道去用这个函数,但是你不记得它的命名空间了,一般百度一下就可以查到了;
关于函数的参数你就可以从微软的MSDN中查找,很详细,也有例子;

参考技术B

    你把第三方dll引用到vs中  双击就可以查看该dll的类 方法 参数 类型(双击会打开 对象浏览器. 也可以在视图中找到对象浏览器,会列出你整个解决方案中的所有引用dll)

    也可以使用第三放工具查看Reflector,ILSpy等反编译工具,除了能看到类 方法 参数 类型,还能直接看到方法体内容

以上是关于C#中怎么知道都有哪些方法可用,像Console.WriteLine,在我不知道Console有WriteLine方法时怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

C#bond 中都有哪些可用的数据类型?

c#中Console类的使用方法有哪些?

C#获取本地视频的缩略图的方法都有哪些?

将字节数组从 c++ 传递到 c# 程序集都有哪些不同的方法?

思科交换机密码设置方法都有哪些

在C#中啥是匿名方法?使用它都有哪些好处?