Tag: intellisense

在Visual Studio for C#中从流畅的接口类intellisense隐藏GetHashCode / Equals / ToString?

我有一个流畅的IoC容器注册过程接口,其中包含一些用于构建注册的类。 例如,我可以这样做: builder.Register().From.ConcreteType(); 但是,在点之后的每个步骤中,会弹出intellisense,显示Object类,GetHashCode,Equals,GetType和ToString中的四种标准方法。 我尝试在几个类中重写这些方法,将EditorBrowsableAttribute属性附加到每个类,但它们仍然显示。 我没办法隐藏它们吗? 请注意,我不是试图将它们隐藏在类本身之外,只是来自intellisense。 基本上,我喜欢这个: +—————+ builder.Register().|As | |By | |Equals | <– remove this |From | |GetHashCode | <– and this |GetType | <– as well as this |ToString | <– and finally this +—————+ 这是我在Register返回的类中尝试的: [EditorBrowsable(EditorBrowsableState.Never)] public override Boolean Equals(Object obj) { return base.Equals(obj); } [EditorBrowsable(EditorBrowsableState.Never)] public override Int32 GetHashCode() […]

如何防止提供扩展方法的公共类出现在Intellisense中?

有没有办法“隐藏”一个类的名称,其唯一目的是提供Intellisense的扩展方法? 我想从Intellisense列表中删除类名,但需要通过Intellisense以通常的方式将类的扩展方法用于外部程序集。

.Net扩展方法(此字符串Foo)仅部分可见

这是关于.Net中扩展方法可见性(特别是C#)的问题,以及为什么intellisense可能有效,但编译器在同一段代码上失败。 想象一下…… 我有.Net 3.5类库,由一堆对象和一个Extension Methods类组成。 以下是其中一种方法: namespace MyApp.Extensions { public static class ExtensionMethods { public static string ToTitleCase(this string Origcase) { string TitleCase = Origcase; … implementation … return TitleCase; } } 要在类库本身中使用扩展方法,需要其中一个方法的每个类都需要指定: using MyApp.Extensions; 因为这是与库的其余部分不同的命名空间。 所有这一切都很好。 现在,.Net 2.0网站正确引用了这个库,类文件希望使用该库。 所以它声明它是: using MyApp.Extensions SEEMS工作得很好,当键入一个字符串时,Intellisense确实看到悬挂在字符串实例上的扩展方法: http://www.flipscript.com/test/ToTitleCase.jpg 当计划结合在一起时,我喜欢它! 然而,这是快乐的结束。 尝试构建网站时,构建失败并显示以下消息: http://www.flipscript.com/test/titlecaseerror.jpg 尝试将ExtensionMethods类直接复制到Web项目时,构建再次失败。 这一次,因为没有预料到“这个”这个词。 奇怪的是,扩展方法确实可以作为普通的静态方法: http://www.flipscript.com/test/titlecaseok.jpg …并且Build工作得很好(所以问题实际上并不是“this”关键字)。 事实上,无论ExtensionMethods类是在类库还是网站中,构建都可以工作。 换句话说,这确实解决了问题,构建将成功。 […]

是否可以将项目添加到Visual Studio IntelliSense™下拉列表中?

我已经找到了如何在VS2010中为特定文件类型实现完整IntelliSense™提供程序的示例,例如Ruby或Python等。 我想要做的是挂钩现有的IntelliSense™for C#或VB.NET,并将其他项添加到Visual Studio已生成的列表中。 (基本上,我想将数据库驱动的项目注入IntelliSense™for Simple.Data对象。) 这实际上是否可行,如果是这样,我该怎么做呢?

可以将Resharper Intellisense配置为按字母顺序排序吗?

我最近更新了使用VS2013和Resharper 8.2,(来自VS2010和Resharper 6)并且发现了一个非常讨厌的“ function ”,因为Resharper的intellisense没有按字母顺序对一个类的成员进行排序。 举例来说,我有一个名为“client”的对象,它有一个名为EthnicityRequired的属性,另一个属性叫为Ethnicities 。 仅使用本机VS2013 intellisense,这就是我输入的client.eth 这就是我的期望; 两个属性都列在一起。 但是,Resharper的Intellisense(更少)给了我这个 虽然可见成员按字母顺序排序,但缺少的种族属性位于列表底部,只有在我键入“ ethnicti ”以便文本不再与EthnicityRequired匹配时才会匹配。 通过仔细检查列表,似乎Resharper正在应用某种分组,然后在每个组中按字母顺序排序。 有谁知道如何摆脱这种相当无用的行为,并恢复到像Resharper 6.0和早期版本的直接alpha排序? 如果你能为JetBrains的理由提供辩护,可以获得奖励积分。

C#中是否存在影响Intellisense如何显示类成员的属性?

是否有任何C#属性可以应用于类成员,以改变它们在Intellisense列表中的显示方式? 当我构建一个具有许多静态常量的类时,这突然出现在我脑海中,而我(简要地说)希望它看起来像Intellisense中的枚举。 是的,这太傻了。 但它让我思考 – 有没有什么方法可以让一些疯狂的程序员在Intellisense中让一个class级成员有不同的表现? 使字段看起来像属性等? 例如,有Obsolete属性: [Obsolete(“Stop using this. Really. It’s old.”)] public int VariableThatIsReallyOld; 其中的单词[obsolete]前缀为VariableThatIsReallyOld的描述。

如何使用intellisense支持编写类似string.Format的方法

考虑使用string.Format的frist参数之类的format参数进行写入的方法。 如您所知,Intellisense知道第一个参数的约束并检查其与参数的一致性。 我怎么能写这样的方法。 举个简单的例子,考虑一下string.Format的包装: public string MyStringFomratter(string formatStr, params object[] arguments) { // Do some checking and apply some logic return string.Format(formatStr, arguments); } 我怎么能对编译器或IDE说formatStr就像string.Format的第一个参数? 所以如果我有这样的代码: var x = MyStringFormatter(“FristName: {0}, LastName: {1}”, firstName); // This code should generate a warning in the IDE

配置在Visual Studio中触发intellisense完成的键

我希望Visual Studio只在我点击tab时自动填充intellisense菜单中的当前条目。 自动填充被触发,例如,当我按下一段时间时,强迫我在每次写一些尚未自动完成的东西时都逃脱,以避免我正在键入的内容被随机条目替换。 有没有配置这个选项? 我正在使用Visual Studio 2015,并使用C#编程。 示例:这里我正在键入Log ,这是一个我还没有添加适当的using语句的类。 没有一个建议是好的。 如果我打了 现在,自动完成function将编写EventLogProcessor ,这不是我想要的。 请注意,此问题与VIM无关,这与顶部链接的问题不重复。

如何在Visual Studio中获取参数提示/完成?

我通常使用Eclipse进行编码,它有一个非常好的参数完成function:当你调用一个方法时,就在你输入之后(它会显示参数列表,并在你键入时突出显示你所在的位置: 如何在Visual Studio 2012中获得类似的帮助? 我知道Ctrl + K,Ctrl + I显示了一些关于光标当前突出显示的信息,但是如果你已经开始输入内容,它就不起作用了。 如果我输入MyMethod(arg1,然后点击快捷方式(或任何其他,如Ctrl + Space或Ctrl + Shift + Space ),我没有得到任何有用的东西。

在MV203项目的VS2013中有限的Intelliesense

我最近安装了vs 2013专业版,并在其中打开了我的一个侧面项目应用程序。 该项目是使用剃刀视图引擎的MVC3应用程序。 我注意到在编辑视图(cshtml)时,我无法访问我在2012年习惯的intellisense。我立刻注意到的例子是@ Url.Content()和@Viewbag。 代码仍然编译并运行,只是没有intellisense。 有点搞砸了我想我应该检查升级日志,果然我找到了…… “用于Razor的Intellisense(CSHTML和VBHTML)文件仅限于HTML标记。有关如何升级MVC 3项目的其他信息,请参阅http://go.microsoft.com/fwlink/?LinkID=317645 。” 提供的链接只是告诉您从mvc3升级到mvc4。 我的问题是:这是我唯一的选择吗? 为了在较旧的mvc3项目上使用VS2013,我将不得不升级它们或者vs2013是否支持mvc razor文件的完整intellisense?