gpt4 book ai didi

c# - 我在哪里或如何获得 C# 保留字/方法/命名空间/...的完整列表以进行自动完成

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:39 25 4
gpt4 key购买 nike

我正在为 C# 语言做一个自动完成编辑器,需要获取 C# 中的所有单词/方法/命名空间/属性。没有在谷歌中找到任何有用的东西。还尝试了反射,但无法在 System 或其他 namespace 之后获取 namespace 等所有项目。

互联网上是否有包含所有这些内容的字典,或者是否有一种方法可以通过反射来完成?

例如:用户正在输入系统。

自动完成发现 System 作为命名空间并显示其中的所有类型/方法和命名空间。

或者用户正在输入位图(如果我找不到作为根类型的位图,那么我将尝试使用 XXX.YYY 的所有组合,例如 XXX.YYY.Bitmap...)

谢谢

附言请不要向我推荐 MSDN,因为我已经知道它,这将是最后也是最糟糕的选择,递归地解析 MSDN 上的所有信息并将其保存在数据库中。

最佳答案

根据@Steve Wellens 的评论,C# 和 .NET 类型名称之间存在差异。您有两个截然不同的问题需要处理:-

  1. 获得 C# 知识 - 将使您的编辑了解 C# 关键字等。这可以在 C# language spec 中找到。 ,根据@Cody Gray 的回答。这不会根据您正在编辑的特定文件的上下文而有所不同(除非您希望您的编辑器可以选择能够限制为旧版本的 C#,在这种情况下,您将需要了解以前版本的规范).

  2. 了解当前编辑上下文中可用的类型。为此,您需要知道当前文件中的 using 语句中声明了哪些 namespace ,以及包含当前文件的项目引用了哪些库。试图在全局范围内为每个可用的图书馆找到所有这些信息是没有意义的,因为信息量太大并且不断变化。您或许可以了解 GAC 中可用的所有类型名称。在部分类型名的情况下,例如Bitmap,一个简单的实现将使用文件中包含的 using 语句来尝试通过检查包含当前文件(可能会发生冲突,需要用户解决,例如,在部分类型名称前加上实际命名空间的更多元素)。这就是 Visual Studio 编辑器的工作方式。更丰富的实现可以检查包含当前文件的项目引用的所有程序集以及 GAC 中包含的所有程序集,如果需要,建议将完整 namespace 添加到类型名称或添加using 语句。这就是 Resharper 的工作原理。

关于c# - 我在哪里或如何获得 C# 保留字/方法/命名空间/...的完整列表以进行自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8552326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com